도커가 작성한 .env
파일에 이상한 문제가 있습니다. 내 .env 파일에서 첫 번째 변수 키 = 쌍을 사용할 수 있지만 첫 번째 변수 만 사용할 수 있습니다.여러 도커가 도커에서 .arg 파일을 작성합니다.
GIT_TOKEN=c3e13c4e33935
DB_PWD=mypassword
고정 표시기-compose.yaml :
version: '3'
web-server:
container_name: service-1
image: sdc/service-1:0.1
build:
context: ./service-1
args:
- GIT_TOKEN=$GIT_TOKEN
- DB_PWD=$DB_PWD
서비스-1/Dockerfile :
FROM node:boron
ARG GIT_TOKEN
ARG DB_PWD
RUN git clone https://${GIT_TOKEN}@github.com/chrxn/sdc.git
RUN echo {"database_password:" $DB_PWD } > crews.txt
문제 이건 내 폴더 구조
|- root
| |- .env
| |- docker-compose.yaml
| |- service-1
| |- Dockerfile
.env의입니다 GIT_TOKEN 변수가 완벽하게 작동한다는 것입니다. , DB_PWD 변수는 그렇지 않습니다. GIT_TOKEN 변수를 에코 라인에 넣더라도, 토큰은 파일에 저장됩니다 (그래서 echo/bash 보간 문제가 아닙니다.) 어떤 도움도 크게 받으실 수 있습니다. Docker의 환경 변수와 관련된 모든 것을 읽었습니다.
참고 : 몇 가지 사항을 수정했습니다. 내 데이터베이스 암호 mypassword되지 않고, 그 진짜 자식의 repo에게
참조되지 않습니다 :
- .env file
- ARG
- Similar example but setting container environment variables
- False issue raised because .env and env_file is so confusing
- combine ARG and ENV
Docker가 환경 변수 대신 인수를 사용하여 값을 컨테이너의 환경 변수에 저장하지 않도록하고 싶습니다.