도커에서 이미지를 만들때 크게 두가지 방식을 사용한다.
1. docker build 명령어를 사용
2. docker-compose 사용
1번의 경우 각각의 도커 이미지를 만들때 주로 사용되고 2번의 경우 한개의 호스트에서 여러 이미지/컨테이너를 관리할때 사용되는 방법이다.
이미지를 만드는 방법은 다루지않고 arg사용하느부분만 자꾸 잊어버려 기록해 놓을 예정이다.
이미지를 만들떄 Dockerfile 을 통해 이미지를 만드는데 이때 변수를 사용할 경우가 종종 생긴다.
(예를들면 서버 주소나 , 아이디 ,포트번호 등등 운영서버와 테스트서버 구분 하는 여러가지 경우)
이런경우 Dockerfile 에 ARG ENV 라고 선언하고 사용하면된다.
1번을 통해서 빌드할 때에는 docker build -t [image_name] --build-arg ENV=test 라고 입력하면 완성된다.
2번을 통해서 빌드할 때에는
build:
context: ./[폴더이름]
dockerfile: Dockerfile
args:
ENV: test
라고 처리하면된다.
예시코드
1. 디렉토리구조
2. Dockerfile
ARG 로 받은 변수를 사용할때에는 앞에 $ 를 추가해주기!
3. main.js 코드
4-1. docker 이미지 생성시 ARG 사용
docker build -t tmp --build-arg INPUT_VALUE=start .
4-2 docker-compose 활용하여 이미지 생성
5-1.docker 컨테이너 실행
docker run --name tmp_test --rm tmp
5-2 docker-compose 사용하여 컨테이너 실행
docker-compose up
6-1. docker 컨테이너 실행 결과
6-2. docker-compose 사용하여 실행 결과