본문 바로가기

개발/docker

docker 커스텀 이미지 생성시 arg 활용

도커에서 이미지를 만들때 크게 두가지 방식을 사용한다.

 

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 사용하여 실행 결과