도커 파일에서 env를 사용할 때 항상 env를 사용할 수 없다.
RUN, CMD, ENTRYPOINT에만 사용할 수 있다.
나 같은 경우는 k8s를 사용하고 런타임에 PHASE를 사용할 것이라 ENTRYPOINT에 추가했다.
ENV PHASE production ... ENTRYPOINT /usr/src/app/docker-entrypoint.sh "$PHASE"
실제 docker-entrypoint.sh 를 다음과 같이 구성했다.
#!/bin/sh
ln -sf /etc/nginx/$1.nginx-vhost.conf /etc/nginx/nginx-vhost.conf
service nginx start
phantomjs --ssl-protocol=any rasterize.js
빌드는 다음과 같이 해서 테스트할 수 있다.
docker build -t voucher-renderer .
docker run -p 80:80 -e PHASE="sandbox" -it voucher-renderer
'Cloud' 카테고리의 다른 글
[kubernetes] Service.spec.type 잘 익숙해지기 (0) | 2019.09.11 |
---|---|
[kubernetes] 특정 node에만 pod 를 배포하기 (0) | 2019.09.10 |
[kubernetes] 네임스페이스(namespace)별 인증서 유의 사항 (0) | 2019.09.09 |
[kubernetes] kubernetes 앱 실행/종료하기 (처음 테스트할때) (0) | 2019.09.06 |
[kubernetes] nginx(ingress)에 인증서 추가하기 (0) | 2019.09.05 |