[BUG] pre_start no longer inherits its parent environment
メンテナーはふだん 1 日以内に返信
評価
この issue はまだ評価されていません。
説明
Description
In docker compose, I have a pre_start clause to run an alembic command. before docker compose v5.6.0 it worked fine, once I upgraded my version I started having issues
File "//alembic/env.py", line 104, in get_database_uri
raise RuntimeError(f"{DATABASE_URI_VARIABLE} is not set in the environment.")
RuntimeError: DATABASE_URI is not set in the environment.
I ran docker compose config and got
(...)
src:
restart: always
pre_start:
- command:
- alembic
- upgrade
- head
env_file:
- path: {CORRECT_PATH_TO_ENV_FILE}
extra_hosts:
- host.docker.internal=host-gateway
networks:
default: null
environment:
DATABASE_URI: (...)
But the environment values are not recognized inside the pre_start container. This is the result of env in the pre_start container:
HOSTNAME=7df048caff72
HOME=/root
PYTHONUNBUFFERED=1
GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
PYTHON_SHA256=f4b1bfb3c79b5bb11b8d228a12504163b4c0dab4d679828d8f5f26b6cb6ab35d
PYTHONDONTWRITEBYTECODE=1
PATH=/opt/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHON_VERSION=3.13.16
PWD=/
Steps To Reproduce
- with docker version 29.8.2, Docker Compose version v5.6.0
- docker compose config
services:
database:
image: postgres:15-alpine
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s
volumes:
- database:/var/lib/postgresql/data
env_file:
- .env
restart: always
src:
build:
context: .
secrets:
- url_lib_common_py
volumes:
- ./logs:/src/logs
- ./alembic:/alembic
- config:/root/.config
extra_hosts:
- "host.docker.internal:host-gateway"
env_file:
- .env
depends_on:
database:
condition: service_healthy
restart: true
pre_start:
- command: alembic upgrade head
restart: always
secrets:
url_lib_common_py:
environment: URL_LIB_COMMON_PY
volumes:
database:
credentials:
config:
- Run
docker compose up - Get:
(...)
File "//alembic/env.py", line 104, in get_database_uri
raise RuntimeError(f"{DATABASE_URI_VARIABLE} is not set in the environment.")
RuntimeError: DATABASE_URI is not set in the environment.
Compose Version
v5.6.0
Docker Environment
29.8.2
Anything else?
No response
- 主要言語
- Go
- スター
- 38.4k
- フォーク
- 5.9k
- 平均マージ
- 2日 7時間
- マージ済み PR(30日)
- 60
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
docker/compose のほかの issue
-
Watch: exec mode対応中かも @glours が 1 日前に担当しました。 オープンkind/feature
docker/compose#14326 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
kind/feature
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
[BUG] `start -p <name>` treats an optional (`required: false`) dependency as required再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 22/100
メンテナーはふだん 1 日以内に返信
-
[BUG] `mode` attribute in `configs` works but raises an unsupported warning対応中かも @ndeloof が 5 日前に担当しました。 オープンkind/bug
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
docker/compose#14288 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] Warns about uid/gid, but with inline configs they do work対応中かも @ndeloof が 5 日前に担当しました。 オープンkind/bug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
docker/compose#14283 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
agent-review-finding bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
jordansmall/spindrift#5281 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
github/github-mcp-server#3489 ·
メンテナーはふだん 4 日以内に返信
-
L: java:gradle L: java:maven L: ruby:bundler T: bug 🐞
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
dependabot/dependabot-core#16547 ·
メンテナーはふだん 1 日以内に返信
-
Docs/examples still create key ranges in ascending order, which fails in 3.1.0 (follow-up to #1754)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
pg-sharding/spqr#3083 ·
メンテナーはふだん 1 日以内に返信