도커 파일:여러 환경 변수를 한 줄로 설정
저는 중간 이미지를 최소화하기 위해 환경 변수를 다음과 같이 한 줄로 설정할 수 있다는 인상을 받았습니다.
FROM alpine:3.6
ENV RUBY_MAJOR 2.4 \
RUBY_VERSION 2.4.1 \
RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION 2.6.12 \
BUNDLER_VERSION 1.15.3
그러나 이 스니펫을 기반으로 컨테이너를 실행하고 호출하는 중# set |grep RU
변수가 따로 할당되는 것이 아니라 하나의 문자열로 결합되는 것을 알 수 있습니다.
RUBY_MAJOR='2.4 RUBY_VERSION 2.4.1 RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 RUBYGEMS_VERSION 2.6.12 BUNDLER_VERSION 1.15.3'
하지만 아래와 같이 각 변수를 명시적으로 설정하면 예상 출력이 나오고 변수 호출 시 오류가 발생하지 않습니다.
ENV RUBY_MAJOR 2.4
ENV RUBY_VERSION 2.4.1
ENV RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
ENV RUBYGEMS_VERSION 2.6.12
ENV BUNDLER_VERSION 1.15.3
질문:환경 변수의 설정을 한 줄로 결합하는 것이 가능합니까?그렇다면 어떻게 해야 하나요?그리고 그것이 좋은 관행인가요?
환경을 지정하는 데는 두 가지 형식이 있습니다.단일 변수가 필요한 경우 아래 형식
ENV X Y
이렇게 하면 X가 다음과 같이 할당됩니다.Y
ENV X Y Z
이렇게 하면 X가 다음과 같이 할당됩니다.Y Z
여러 환경 변수를 할당해야 하는 경우 다른 형식을 사용합니다.
ENV X=Y Z=A
이렇게 하면 X가 다음과 같이 할당됩니다.Y
그리고 자스A
그래서 너의Dockerfile
그래야 한다
FROM alpine:3.6
ENV RUBY_MAJOR=2.4 \
RUBY_VERSION=2.4.1 \
RUBY_DOWNLOAD_SHA256=4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION=2.6.12 \
BUNDLER_VERSION=1.15.3
RUN env
당신은 많은 것에 대해 걱정할 필요가 없습니다.ENV
각 명령은 도커 파일로 만든 최종 이미지에 대한 새 중간 계층을 만듭니다.
도면층 수 최소화
Docker 17.05 이전 버전과 Docker 1.10 이전 버전에서는 이미지의 계층 수를 최소화하는 것이 중요했습니다.다음과 같은 개선 사항을 통해 이러한 필요성이 완화되었습니다.
Docker 1.10 이상에서만
RUN
,COPY
,그리고.ADD
지시사항은 도면층을 작성합니다.다른 지침은 임시 중간 이미지를 생성하며 빌드 크기를 직접 증가시키지 않습니다.Docker 17.05 이상에서는 필요한 아티팩트만 최종 이미지에 복사할 수 있는 다단계 빌드 지원이 추가되었습니다.이렇게 하면 최종 이미지의 크기를 늘리지 않고 중간 빌드 단계에 도구 및 디버그 정보를 포함할 수 있습니다.
언급URL : https://stackoverflow.com/questions/45529121/dockerfile-setting-multiple-environment-variables-in-single-line
'programing' 카테고리의 다른 글
형식 표를 사용하여 열 너비 제어 (0) | 2023.08.30 |
---|---|
구문 오류: 잘못된 정규식 플래그 agax, Javascript (0) | 2023.08.30 |
이미지 처리를 위한 매우 빠른 Memcpy? (0) | 2023.08.30 |
대문자 앞에 공백 추가 (0) | 2023.08.30 |
Powershell에서 JSON으로 변환할 때 탭 너비를 변경하는 방법 (0) | 2023.08.30 |