Dockerfile 是一个文本文件,用于自动化地构建 Docker 镜像。Dockerfile 定义了从基础镜像开始,按步骤配置环境和部署应用所需要的所有命令。
如以下dockerfile:
# 使用 Java 11 官方镜像作为基础镜像
FROM openjdk:11-jdk
# 设置维护者信息
LABEL maintainer="[email protected]"
# 环境变量,可以设置默认的环境变量用于应用配置
ENV SPRING_PROFILES_ACTIVE=prod \
JAVA_OPTS="-Xmx512m -Xms256m"
# 设置容器内的工作目录
WORKDIR /app
# 将 jar 包复制到工作目录
COPY target/my-spring-boot-app.jar my-app.jar
# 指定对外暴露的端口号
EXPOSE 8080
# 容器健康检查,定期检查应用是否响应
HEALTHCHECK --interval=1m --timeout=3s \
CMD curl -f http://localhost:8080/actuator/health || exit 1
# 使用 ENTRYPOINT 和 CMD 以提供默认执行命令,同时允许覆盖参数
ENTRYPOINT ["java", "-jar", "my-app.jar"]
CMD ["--server.port=8080"]
# 在构建或部署前执行额外的命令
ONBUILD RUN echo "Built a new image based on Java Spring Boot Application"
FROM openjdk:11-jdk
LABEL maintainer="[email protected]"
ENV SPRING_PROFILES_ACTIVE=prod \
JAVA_OPTS="-Xmx512m -Xms256m"
WORKDIR /app
COPY target/my-spring-boot-app.jar /app/my-app.jar
EXPOSE 8080
HEALTHCHECK --interval=1m --timeout=3s \
CMD curl -f http://localhost:8080/actuator/health || exit 1
ENTRYPOINT ["java", "-jar", "my-app.jar"]
CMD ["--server.port=8080"]
ONBUILD RUN echo "Built a new image based on Java Spring Boot Application"
RUN echo "Built a new image based on Java Spring Boot Application"
VOLUME /var/cache/nginx
USER nginx
ARG VERSION=1.0