Docker file의 FROM AS(multi-stage build)를 통해 여러 이미지를 만들고 정식 개발 환경 전환 등(#docker)

2491 단어 Docker

Dockerfile

  • 컬만 들어간 인상에 컬-only라는 이름
  • 컬-only를 원형으로 하고 컬-with-vim 등의 이름
  • 을 붙인다
    from alpine:3.10.2 AS curl-only
    run apk add curl
    
    from curl-only AS curl-with-vim
    run apk add vim
    

    build

  • --target에서 AS 이름을 docker build
  • 로 지정합니다.
    docker build --target=curl-only -t production .
    
    docker build --target=curl-with-vim -t development .
    
    $ docker images
    REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
    development                               latest              d26a7ed31fc2        11 seconds ago      36MB
    production                                latest              6ad1165a2fe5        24 seconds ago      8.34MB
    

    docker run


    알핀 본체에는 컬도 없고 vim도 없어요.
    $ docker run -it alpine:3.10.2 ash
    / # curl
    ash: curl: not found
    / # vim
    ash: vim: not found
    
    
    production image에는 curl이 있지만 vim이 없습니다.
    $ docker run -it production ash
    / # curl
    curl: try 'curl --help' or 'curl --manual' for more information
    / # vim
    ash: vim: not found
    / #
    
    개발자 imge에는 curl도 있고vim도 있어요.
    $ docker run -it development ash
    / # curl
    curl: try 'curl --help' or 'curl --manual' for more information
    / # vim
    

    docker-compose


    ver3.4 이상 데이터를 지정할 수 있는 경우
    version: "3.7"
    services:
      some:
        build: 
          context: .
          target: curl-with-vim
    
    docker-compose build
    
    docker-compose run some
    
    vim
    

    Docker file 스키마


    아마 AS에 환경명을 붙일 수 있을 거예요.
    from alpine:3.10.2 AS production
    run apk add curl
    
    from production AS development
    run apk add vim
    
    docker build --target=production -t production .
    docker build --target=development -t production .
    

    Original by Github issue

    좋은 웹페이지 즐겨찾기