문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
docker:build [2018/12/04 10:05] kwon37xi [용량 줄이기] |
docker:build [2022/02/16 14:49] (현재) kwon37xi [주의할 점] |
||
|---|---|---|---|
| 줄 2: | 줄 2: | ||
| [[: | [[: | ||
| + | ===== 주의할 점 ===== | ||
| + | * 최종 프로세스실행 사용자를 '' | ||
| + | * 그렇지 않으면 Docker Container의 프로세스가 뚫리면 Host 운영체제의 '' | ||
| + | * 항상 동일한 '' | ||
| + | * '' | ||
| + | * Timezone 을 명확히 맞춘다. | ||
| + | * multi stage build로 최소 용량이 될 수 있게 한다. | ||
| + | * 내 경험상 [[linux: | ||
| ===== 한 컨테이너에서 다중 프로세스 실행 ===== | ===== 한 컨테이너에서 다중 프로세스 실행 ===== | ||
| * [[https:// | * [[https:// | ||
| 줄 15: | 줄 23: | ||
| </ | </ | ||
| * '' | * '' | ||
| - | * '' | + | * '' |
| + | |||
| + | ===== 실행 사용자 변경 ===== | ||
| + | * 기본적으로 root 사용자로 ENTRYPOINT, CMD 의 명령이 실행되는데 이 경우 보안상 문제가 될 수 있다. Docker 컨테이너가 해킹당하면 '' | ||
| + | * 따라서 항상 non-root 권한으로 명령을 실행할 수 있도록 해야 한다. | ||
| + | |||
| + | <code sh> | ||
| + | # alpine linux 사용자 추가 | ||
| + | RUN adduser -D -h / | ||
| + | USER worker | ||
| + | </ | ||
| + | ===== COPY와 ADD chown ===== | ||
| + | * Docker 17.x 이후부터 '' | ||
| + | <code sh> | ||
| + | COPY --chown=< | ||
| + | </ | ||
| + | |||
| ===== ENTRYPOINT ===== | ===== ENTRYPOINT ===== | ||
| * run/start 후 docker 컨테이너 내부에서 실행할 스크립트 | * run/start 후 docker 컨테이너 내부에서 실행할 스크립트 | ||
| 줄 63: | 줄 88: | ||
| * 소스에서 바이너리를 빌드 한 뒤에 실제로 필요한 바이너리만 최종 Docker 이미지로 만들거나 할 수 있는 방식 | * 소스에서 바이너리를 빌드 한 뒤에 실제로 필요한 바이너리만 최종 Docker 이미지로 만들거나 할 수 있는 방식 | ||
| + | ===== 참조 ===== | ||
| + | * [[https:// | ||
| + | * * [[https:// | ||