如何在docker中的另一个自定义图像中使用自定义图像
我有一个sbt项目,比如说DemoProject,它依赖于另一个sbt项目CommonProject DemoProject在其中使用了CommonProject的jar,我创建了两个自定义图像,第一个是CommonProject,第二个是DemoProject 这是Commons项目的DockerFile如何在docker中的另一个自定义图像中使用自定义图像,docker,sbt,Docker,Sbt,我有一个sbt项目,比如说DemoProject,它依赖于另一个sbt项目CommonProject DemoProject在其中使用了CommonProject的jar,我创建了两个自定义图像,第一个是CommonProject,第二个是DemoProject 这是Commons项目的DockerFile FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8 MAINTAINER name <name@gmail.com> ADD . /p
FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8
MAINTAINER name <name@gmail.com>
ADD . /project-commons
WORKDIR /project-commons
# Define default command.
CMD ["sbt", "publishLocal"]
并构建它docker构建项目演示:v1
并运行它
docker run project-demo
但是在日志中,我得到了project-commons.jar的未解析依赖项的例外,它说找不到jar
我在这里错过了什么?我是docker的初学者,请指导我你要做的事。在秒阶段(从的第二个开始),您必须指定要从上一阶段添加的文件:
FROM project-commons:v1 as firstStage
MAINTAINER name <name@gmail.com>
WORKDIR /project-commons
ADD . /home/user/.ivy2/local/project-commons_2.12/0.1.0-SNAPSHOT/jars/project-commons_2.12.jar
# Define default command.
CMD ["sbt","publishLocal"]
FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8
MAINTAINER name <name@gmail.com>
# Copy from previous stage
COPY --from=firstStage /projectCommons /projectCommons
COPY --from=firstStage /home/user/.ivy2/ /home/user/.ivy2/
WORKDIR /project-demo
ADD . /project-demo
# Define default command.
CMD ["sbt", "run"]
你在试着去做。在秒阶段(从
的第二个开始),您必须指定要从上一阶段添加的文件:
FROM project-commons:v1 as firstStage
MAINTAINER name <name@gmail.com>
WORKDIR /project-commons
ADD . /home/user/.ivy2/local/project-commons_2.12/0.1.0-SNAPSHOT/jars/project-commons_2.12.jar
# Define default command.
CMD ["sbt","publishLocal"]
FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8
MAINTAINER name <name@gmail.com>
# Copy from previous stage
COPY --from=firstStage /projectCommons /projectCommons
COPY --from=firstStage /home/user/.ivy2/ /home/user/.ivy2/
WORKDIR /project-demo
ADD . /project-demo
# Define default command.
CMD ["sbt", "run"]
您可以共享项目共享目录吗?~/git/project commons您可以共享项目共享目录吗?~/git/project commons问题仍然存在persists@swaheed您需要运行映像并进入容器内部,检查所有必需的文件是否存在运行imageusedocker run--rm-it bash
时出现异常,它仍将取代sbt命令persists@swaheed您需要运行映像并进入容器内部,检查所有必需的文件是否存在。我在运行imageusedocker run--rm-it bash时遇到异常,它将替换sbt命令
FROM project-commons:v1
MAINTAINER name <name@gmail.com>
ADD . /home/user/.ivy2/local/project-commons_2.12/0.1.0-SNAPSHOT/jars/project-commons_2.12.jar
WORKDIR /project-demo
ADD . /project-demo
# Define default command.
CMD ["sbt", "run"]