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