도커 파일에서 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


Posted by '김용환'
,