应用二进制文件应该在装载或卷中,还是应该只存在于 docker 容器中?



这方面的最佳实践是什么?例如,假设我正在运行一个java或python应用程序。所以我会运行一个基于 java 或 python 的容器,但我的应用程序应该放在哪里?它们应该位于基础映像中的文件夹中,还是应该位于主机上装载的文件夹中?

应将jar 复制到开发、暂存、生产或测试环境的容器中。 有时开发人员可以挂载二进制文件,但这是后一种情况。 下面是标准的 Dockerfile 示例,"init"是应用程序统计信息的脚本:

FROM openjdk:8-jdk-slim
ENV MYSQL_URL="mysql-master:3306" 
EXPOSE 8080
COPY build/libs/app-*SNAPSHOT.jar /opt/app.jar
COPY init /opt/
WORKDIR /opt
VOLUME /logs
ENTRYPOINT ["/opt/init"]

优点之一是,您可以测试、部署到暂存、部署到生产环境相同的容器,开发人员可以获取它以供本地运行以重现问题。

还可以将版本控制包含在容器标记中。您将从docker image ls知道具有所需环境的应用程序版本已启动。

最新更新