Fix local env in docker-compose.yaml (#1085)
* Allow docker env override via .env.local * Make .env.local optional * Fix env var expansion ignoring .env.local * Rename .env.development to .env.docker * Use YAML anchors * Revert rename of .env.development
This commit is contained in:
parent
0ea261428c
commit
dd6e921e2e
|
@ -1,20 +1,38 @@
|
|||
x-env_file: &env_file
|
||||
- .env.development
|
||||
- path: .env.local
|
||||
required: false
|
||||
x-healthcheck: &healthcheck
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
x-depends-on-db: &depends_on_db
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
x-depends-on-app: &depends_on_app
|
||||
app:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
x-depends-on-bitcoin: &depends_on_bitcoin
|
||||
bitcoin:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
|
||||
services:
|
||||
db:
|
||||
container_name: db
|
||||
build: ./docker/db
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "PGPASSWORD=${POSTGRES_PASSWORD} pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB} -h 127.0.0.1 && psql -U ${POSTGRES_USER} ${POSTGRES_DB} -c 'SELECT 1 FROM users LIMIT 1'"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
expose:
|
||||
- "5432"
|
||||
ports:
|
||||
- "5431:5432"
|
||||
env_file:
|
||||
- .env.development
|
||||
env_file: *env_file
|
||||
volumes:
|
||||
- ./docker/db/seed.sql:/docker-entrypoint-initdb.d/seed.sql
|
||||
- db:/var/lib/postgresql/data
|
||||
|
@ -29,17 +47,10 @@ services:
|
|||
- GID=${CURRENT_GID}
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
depends_on: *depends_on_db
|
||||
env_file: *env_file
|
||||
expose:
|
||||
- "3000"
|
||||
ports:
|
||||
|
@ -53,19 +64,13 @@ services:
|
|||
build:
|
||||
context: ./capture
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
app:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
depends_on: *depends_on_app
|
||||
profiles:
|
||||
- capture
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD", "curl", "-f", "http://localhost:5678/health"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
env_file: .env.development
|
||||
env_file: *env_file
|
||||
environment:
|
||||
# configure to screenshot production, because local dev is too slow
|
||||
- CAPTURE_URL=http://stacker.news
|
||||
|
@ -84,14 +89,10 @@ services:
|
|||
- GID=${CURRENT_GID}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
app:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
<<:
|
||||
- *depends_on_db
|
||||
- *depends_on_app
|
||||
env_file: *env_file
|
||||
volumes:
|
||||
- ./:/app
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
|
@ -103,14 +104,10 @@ services:
|
|||
profiles:
|
||||
- images
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: [ "CMD", "imgproxy", "health" ]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env.development
|
||||
env_file: *env_file
|
||||
ports:
|
||||
- "3001:8080"
|
||||
expose:
|
||||
|
@ -129,8 +126,7 @@ services:
|
|||
restart: unless-stopped
|
||||
profiles:
|
||||
- images
|
||||
env_file:
|
||||
- .env.development
|
||||
env_file: *env_file
|
||||
environment:
|
||||
- DEBUG=1
|
||||
ports:
|
||||
|
@ -149,14 +145,10 @@ services:
|
|||
profiles:
|
||||
- search
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "curl -ku admin:${OPENSEARCH_INITIAL_ADMIN_PASSWORD} --silent --fail localhost:9200/_cluster/health || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env.development
|
||||
env_file: *env_file
|
||||
environment:
|
||||
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=mVchg1T5oA9wudUh
|
||||
ports:
|
||||
|
@ -194,8 +186,7 @@ services:
|
|||
opensearch:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
env_file: *env_file
|
||||
environment:
|
||||
- opensearch.ssl.verificationMode=none
|
||||
- OPENSEARCH_HOSTS=http://opensearch:9200
|
||||
|
@ -213,11 +204,8 @@ services:
|
|||
profiles:
|
||||
- payments
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "bitcoin-cli -chain=regtest -rpcport=${RPC_PORT} -rpcuser=${RPC_USER} -rpcpassword=${RPC_PASS} getblockchaininfo"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
command:
|
||||
- 'bitcoind'
|
||||
- '-server=1'
|
||||
|
@ -275,17 +263,10 @@ services:
|
|||
profiles:
|
||||
- payments
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "lncli", "getinfo"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
depends_on:
|
||||
bitcoin:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
depends_on: *depends_on_bitcoin
|
||||
env_file: *env_file
|
||||
command:
|
||||
- 'lnd'
|
||||
- '--noseedbackup'
|
||||
|
@ -339,17 +320,10 @@ services:
|
|||
profiles:
|
||||
- payments
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "lncli", "getinfo"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
depends_on:
|
||||
bitcoin:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
depends_on: *depends_on_bitcoin
|
||||
env_file: *env_file
|
||||
command:
|
||||
- 'lnd'
|
||||
- '--noseedbackup'
|
||||
|
@ -401,17 +375,10 @@ services:
|
|||
profiles:
|
||||
- payments
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD-SHELL", "su clightning -c 'lightning-cli --network=regtest getinfo'"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
depends_on:
|
||||
bitcoin:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
env_file:
|
||||
- .env.development
|
||||
depends_on: *depends_on_bitcoin
|
||||
env_file: *env_file
|
||||
command:
|
||||
- 'lightningd'
|
||||
- '--network=regtest'
|
||||
|
@ -462,11 +429,8 @@ services:
|
|||
- email
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
<<: *healthcheck
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8025"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 1m
|
||||
ports:
|
||||
- "8025:8025"
|
||||
- "1025:1025"
|
||||
|
|
2
sndev
2
sndev
|
@ -13,7 +13,7 @@ docker__compose() {
|
|||
COMPOSE_PROFILES="images,search,payments,email,capture"
|
||||
fi
|
||||
|
||||
CURRENT_UID=$(id -u) CURRENT_GID=$(id -g) COMPOSE_PROFILES=$COMPOSE_PROFILES command docker compose --env-file .env.development "$@"
|
||||
CURRENT_UID=$(id -u) CURRENT_GID=$(id -g) COMPOSE_PROFILES=$COMPOSE_PROFILES command docker compose --env-file .env.development --env-file .env.local "$@"
|
||||
}
|
||||
|
||||
docker__exec() {
|
||||
|
|
Loading…
Reference in New Issue