2017-11-23 9 views
0

도커가 작성한 .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에게

참조되지 않습니다 :

Docker가 환경 변수 대신 인수를 사용하여 값을 컨테이너의 환경 변수에 저장하지 않도록하고 싶습니다.

답변

0

Facepalm ♀️ - 완벽하게 작동합니다. 내 docker-compose.yaml 파일에 잘못된 서비스 아래에 - DB_PWD=$DB_PWD 인수를 넣었습니다. 이 부분을 도커 빌드 인수와 함께 .env 파일을 사용하는 방법에 대한 참조로 남겨 두겠습니다. 내 자신을 상기 시키는데 나는 바보입니다. 나는 부끄럽다 - 100 평점 평판