Dockerfile FROM openjdk:8-jdk-alpine ARG JAR_FILE=./target/libs/*.jar # ARG는 Dockerfile build시에 사용 ARG ARG_PROFILE ENV PROFILE=${ARG_PROFILE} COPY ${JAR_FILE} app.jar EXPOSE 24500 ENTRYPOINT exec java -jar -Dspring.profiles.active=${PROFILE} /app.jar # ARG_PROFILE변수에 QA값이 바인딩 되면서 빌드시에 PROFILE 변수에 값이 들어간다. $ docker build --build-arg ARG_PROFILE=QA -f ./Dockerfile /usr/projects/rootPath --tag qa_docker # ENV PROFILE 변수에 QA로 세팅된걸 확인할 수 있다. $ docker inspect qa_docker "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin", "LANG=C.UTF-8", "JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk", "JAVA_VERSION=8u212", "JAVA_ALPINE_VERSION=8.212.04-r0", "PROFILE=QA" ], # docker run 실행시 환경변수를 추가하여 오버라이딩이 가능하다. $ docker run --env PROFILE=LIVE qa_docker # PROFILE 변수에 LIVE가 세팅된걸 확인 $ docker inspect [qa_docker_container_id] "Env": [ "PROFILE=LIVE", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin", "LANG=C.UTF-8", "JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk", "JAVA_VERSION=8u212", "JAVA_ALPINE_VERSION=8.212.04-r0" ], #docker 를 이용한 springboot 실행시 profile 변경이 가능하다. $ docker run --env PROFILE=LIVE qa_docker $ docker run --env PROFILE=TEST qa_docker $ docker run --env PROFILE=QA qa_docker