다음과 같은 간단한 예를 들어보세요.
services:
app:
image: alpine
env_file: config.env
entrypoint:
- /bin/sh
- -c
- 'echo "Var is: $$MY_VAR"'
config.env
로컬 개발 설정은 로컬에 있고 프로덕션 config.env
설정은 서버에 있습니다.
를 사용하면 서버의 로컬 config.env 대신 로컬 config.env가 사용됩니다. 나는 내 저장소 에 환경별 구성을 저장하고 싶지 않지만 Docker 문서에서 권장하는 방법에는 모두 .docker-compose -H [email protected] up --build -d
.yml
.env
docker-compose
제 질문은 어떻게 구성을 서버에 저장하고 docker-compose
개발 컴퓨터에서 배포에 사용할 수 있느냐는 것입니다. 아니면 리포지토리를 서버에 업로드하고 docker-compose
거기서 실행하여 원격 env 파일을 사용하는 것이 더 낫습니까 ?
답변1
결국 docker-compose 파일을 서버에 복사하고 서버의 환경 파일을 사용하는 자체 배포 스크립트를 만들었습니다.
scp docker-compose.yml $USER@$HOST:/tmp/
deploy_cmd="export \$(grep -v '#.*' \"$REMOTE_ENV_FILE\" | xargs)";
deploy_cmd="$deploy_cmd && docker stack deploy -c /tmp/docker-compose.yml my-project";
echo "Deploying to $USER@$HOST"
ssh -qA "$USER@$HOST" "$deploy_cmd" || return 1;