Dockerfile 설명 및springboot 구축 실전
Dockerfile 설명
미러에 대한 기본 미러를 지정합니다.
# :
FROM :
# :
FROM centos:7
# :
tag , :latest
작성자 정보를 지정합니다.
# :
MAINTAINER
# :
MAINTAINER liweichao
거울을 만들 때 실행되는 스크립트입니다.
# :
RUN command param1 param2
RUN ["executable", "param1", "param2"]
# :
RUN ls
#
Dockerfile , Dockerfile 。
:RUN cd /tmp && mkdir app
용기가 시작된 후 실행된 명령입니다.
# :
ENTRYPOINT command param1 param2
ENTRYPOINT ["executable", "param1", "param2"]
# :
ENTRYPOINT mvn -v
#
Dockerfile ENTRYPOINT, , 。
용기가 시작된 후 실행된 명령입니다.
# :
CMD command param1 param2
CMD ["executable", "param1", "param2"]
CMD ["param1","param2"] -- ENTRYPOINT ;
# :
CMD mvn -v
#
Dockerfile CMD, , 。 , CMD
ENTRYPOINT 대비 설명:
공통점:
다름:
상세 참조: Dockerfile에서 지정한 실행 명령은 ENTRYPOING을 사용하는 것과 CMD를 사용하는 것이 어떻게 다릅니까?
Docker 서버 용기에 노출된 포트 번호로 호환 시스템에 사용됩니다.
# :
EXPOSE [...]
# :
EXPOSE 8080 9090 50983
#
환경 변수를 지정합니다.
# :
ENV
# :
ENV spring.profiles.active prod
#
Dockerfile RUN , , docker run –env 。
컨테이너에 파일을 추가합니다.
# :
ADD
# :
ADD . /tmp/app
#
Dockerfile , url, 。
컨테이너에 파일을 추가합니다.
# :
COPY
# :
COPY . /tmp/app
#
src url, 。
로컬 호스트나 다른 용기에서 마운트할 수 있는 마운트 지점을 만듭니다. 일반적으로 데이터베이스와 유지해야 할 데이터 등을 저장합니다.
# :
VOLUME ["samepath"]
# :
VOLUME ["/logs"]
#
컨테이너를 실행할 때 사용자 이름 또는 UID.
# :
USER [username|uid]
# :
USER root
#
후속 RUN, CMD, ENTRYPOINT 명령에 대한 작업 디렉토리를 구성합니다.
# :
WORKDIR /path
# :
WORKDIR /tmp/app
#
생성된 미러가 새로 생성된 다른 미러의 기본 미러로 사용될 때 수행되는 작업 명령을 구성합니다.
# :
ONBUILD [INSTRUCTION]
# :
#
, 。
springboot 구축 실전
우선 아이디어에서 마벤트 기반의springboot 프로젝트를 구축하고spring-boot-starter-web 의존도를 추가하면 간단한 controller를 작성할 수 있습니다. 이 부분은 중점이 아닙니다.
Dockerfile 쓰기
#
FROM maven:3.5.0-jdk-8-alpine
#
MAINTAINER liweichao
#
ADD . /tmp/app/
# , , 。
RUN cd /tmp/app && mvn clean package -X &&\
#
mv /tmp/app/target/*.jar /var/lib/app.jar &&\
#
rm -rf /tmp/app
#
ENV LANG="zh_CN.UTF-8"
#
ENV spring.profiles.active="prod"
#
VOLUME ["/logs"]
#
EXPOSE 8080 9090 50983
#
ENTRYPOINT java -server -Dfile.encoding=UTF-8 -Xmx1025m -Xss256k -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=50983 -Djava.security.egd=file:/dev/./urandom -jar /var/lib/app.jar
여기에서 용기에서 코드를 컴파일하는 것은 실제 개발에서 제창하지 않습니다. 개발에서 이미지를 구축하고 컴파일하는 것은 분리되어야 합니다. 용기는 컴파일된jar 패키지만 추가하면 됩니다.
위springboot 프로젝트의 모든 설정은github에서 찾을 수 있습니다. 문제가 있으면 개인 편지로 주십시오.
전재 대상:https://juejin.im/post/5b419ca55188251b134e5929
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.