Lui*_*lho 4 environment-variables docker docker-compose
我有两个环境development和production,我用两个文件与每个环境的相应的增值经销商:.env.development和.env.production.我也使用docker-compose来加载这些变量.
COMPOSE_PROJECT_NAME=luna
RAILS_ENV=development
DATABASE_URL=postgresql://user:pass@lunapostgres:5432/luna?encoding=utf8&pool=5&timeout=5000
REDIS_CACHE_URL=redis://:pass@redis:6379/0/cache
ACTIVE_JOB_QUEUE_PREFIX=luna:jobs
ACTIVE_JOB_URL=redis://:pass@redis:6379/0
AUTH_BASE_URL=auth.com
SOLAR_BASE_URL=http://test.url
# SOLAR_BASE_URL=http://api/api/v1/
BUNDLE_PATH=/box
BIND_ON=0.0.0.0:3000
SENTRY_DSN=http://xxxxxxx
PAGER=more
ACCESS_TOKEN=xxx
VERIFY_TOKEN=xxx
DIALOGFLOW_CLIENT_ACCESS_TOKEN=xxx
DIALOGFLOW_DEV_ACCESS_TOKEN=xxx
RAILS_MAX_THREADS=1
WEB_CONCURRENCY=1
REQUEST_TIMEOUT=5
DOMAIN=localhost:3000
BASE_URL=localhost:300
SECRET_TOKEN=xxx
LOG_LEVEL=debug
SOLAR_MENTOS_DEBUG=true
Run Code Online (Sandbox Code Playgroud)
COMPOSE_PROJECT_NAME=luna
RAILS_ENV=production
RACK_ENV=production
DATABASE_URL=postgresql://user:pass@lunapostgres:5432/luna?encoding=utf8&pool=5&timeout=5000
REDIS_CACHE_URL=redis://:pass@redis:6379/0/cache
ACTIVE_JOB_QUEUE_PREFIX=luna:jobs
ACTIVE_JOB_URL=redis://:pass@redis:6379/0
AUTH_BASE_URL=auth.com
SOLAR_BASE_URL=http://test.url
# SOLAR_BASE_URL=http://api/api/v1/
BUNDLE_PATH=/box
BIND_ON=0.0.0.0:3000
SENTRY_DSN=http://xxxxxxx
ACCESS_TOKEN=yyy
APP_SECRET=yyy
VERIFY_TOKEN=yyy
DIALOGFLOW_CLIENT_ACCESS_TOKEN=yyy
DIALOGFLOW_DEV_ACCESS_TOKEN=yyy
RAILS_SERVE_STATIC_FILES=true
RAILS_LOG_TO_STDOUT=true
WEB_CONCURRENCY=5
REQUEST_TIMEOUT=5
RAILS_MAX_THREADS=5
DOMAIN=production.com
BASE_URL=https://production.com
SECRET_TOKEN=yyy
LOG_LEVEL=info
# ----------------------------------------
DEVISE_SECRET_KEY='yyy'
GOOGLE_ANALYTICS_UA='yyy'
Run Code Online (Sandbox Code Playgroud)
version: '2'
services:
app:
env_file:
- '.env.development'
Run Code Online (Sandbox Code Playgroud)
version: '2'
services:
app:
env_file:
- '.env.production'
Run Code Online (Sandbox Code Playgroud)
我想在我的容器之间共享等效的环境变量,并在各自的环境中保留不同的变量.
使用可扩展的环境文件.
version: '2'
services:
app:
env_file:
- 'base.env'
- 'production.env'
Run Code Online (Sandbox Code Playgroud)
来自Docs
在多个文件中设置相同的环境变量时,这是Compose用于选择要使用的值的优先级:
- 撰写文件,
- 环境文件
- Dockerfile
- 变量未定义
关于使用多个文件的文档并不清楚,所以我进行了测试.最后一个环境文件会覆盖以前设置的变量.如果要覆盖默认值,请在最后一个文件或撰写文件中执行此操作.
base.env
TEST_VARIABLE=base
Run Code Online (Sandbox Code Playgroud)
production.env
TEST_VARIABLE=production
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
version: '2.1'
services:
test:
image: alpine
env_file:
- 'base.env'
- 'production.env'
Run Code Online (Sandbox Code Playgroud)
跑步docker-compose run --rm test env后TEST_VARIABLE=production给我们docker-compose run --rm test env.因此,第二个文件会覆盖第一个文件.
| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |