This is useful for when runner is bundled with gitlab, like in a kubernetes stack, and we want the runner to be able to register with gitlab as soon as they both come up.
3.8 KiB
Environment Variables
GitLab exposes certain environment variables which can be used to override their defaults values.
People usually configure GitLab via /etc/gitlab/gitlab.rb
for Omnibus
installations, or gitlab.yml
for installations from source.
Below you will find the supported environment variables which you can use to override certain values.
Supported environment variables
Variable | Type | Description |
---|---|---|
GITLAB_ROOT_PASSWORD |
string | Sets the password for the root user on installation |
GITLAB_HOST |
string | The full URL of the GitLab server (including http:// or https:// ) |
RAILS_ENV |
string | The Rails environment; can be one of production , development , staging or test |
DATABASE_URL |
string | The database URL; is of the form: postgresql://localhost/blog_development |
GITLAB_EMAIL_FROM |
string | The e-mail address used in the "From" field in e-mails sent by GitLab |
GITLAB_EMAIL_DISPLAY_NAME |
string | The name used in the "From" field in e-mails sent by GitLab |
GITLAB_EMAIL_REPLY_TO |
string | The e-mail address used in the "Reply-To" field in e-mails sent by GitLab |
GITLAB_EMAIL_REPLY_TO |
string | The e-mail address used in the "Reply-To" field in e-mails sent by GitLab |
GITLAB_EMAIL_SUBJECT_SUFFIX |
string | The e-mail subject suffix used in e-mails sent by GitLab |
GITLAB_UNICORN_MEMORY_MIN |
integer | The minimum memory threshold (in bytes) for the Unicorn worker killer |
GITLAB_UNICORN_MEMORY_MAX |
integer | The maximum memory threshold (in bytes) for the Unicorn worker killer |
GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN |
string | Sets the initial registration token used for GitLab Runners |
Complete database variables
The recommended way of specifying your database connection information is to set
the DATABASE_URL
environment variable. This variable only holds connection
information (adapter
, database
, username
, password
, host
and port
),
but not behavior information (encoding
, pool
). If you don't want to use
DATABASE_URL
and/or want to set database behavior information, you will have
to either:
- copy our template file:
cp config/database.yml.env config/database.yml
, or - set a value for some
GITLAB_DATABASE_XXX
variables
The list of GITLAB_DATABASE_XXX
variables that you can set is:
Variable | Default value | Overridden by DATABASE_URL ? |
---|---|---|
GITLAB_DATABASE_ADAPTER |
postgresql (for MySQL use mysql2 ) |
Yes |
GITLAB_DATABASE_DATABASE |
gitlab_#{ENV['RAILS_ENV'] |
Yes |
GITLAB_DATABASE_USERNAME |
root |
Yes |
GITLAB_DATABASE_PASSWORD |
None | Yes |
GITLAB_DATABASE_HOST |
localhost |
Yes |
GITLAB_DATABASE_PORT |
5432 |
Yes |
GITLAB_DATABASE_ENCODING |
unicode |
No |
GITLAB_DATABASE_POOL |
10 |
No |
Adding more variables
We welcome merge requests to make more settings configurable via variables.
Please make changes in the config/initializers/1_settings.rb
file and stick
to the naming scheme GITLAB_#{name in 1_settings.rb in upper case}
.
Omnibus configuration
It's possible to preconfigure the GitLab docker image by adding the environment
variable GITLAB_OMNIBUS_CONFIG
to the docker run
command.
For more information see the 'preconfigure-docker-container' section in the Omnibus documentation.