我将我的hub.docker.com帐户与bitbucket.org关联以进行自动构建。在我存储库的核心文件夹中存在Dockerfile,它位于2个映像构建步骤中。如果我在本地(我的意思是在Windows中)基于相同的Dockerfile构建映像,则会得到2个不同的映像。但是,如果我将使用hub.docker.com进行构建,则只会保存最后一张图像并将其标记为“最新”。
Dockerfile:
#-------------First image ----------
FROM nginx
#-------Adding html files
RUN mkdir /usr/share/nginx/s1
COPY content/s1 /usr/share/nginx/s1
RUN mkdir /usr/share/nginx/s2
COPY content/s2 /usr/share/nginx/s2
# ----------Adding conf file
RUN rm -v /etc/nginx/nginx.conf
COPY conf/nginx.conf /etc/nginx/nginx.conf
RUN service nginx start
# ------Second image -----------------
# Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine
# Add a volume pointing to /tmp
VOLUME /tmp
# Make port 8080 available to the world outside this container
EXPOSE 8080
# The application's jar file
ARG JAR_FILE=jar/testbootstap-0.0.1-SNAPSHOT.jar
# Add the application's jar to the container
ADD ${JAR_FILE} test.jar
# Run the jar file
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
有人这样做过吗?还是不可能?
PS:只有一个私有存储库可供免费使用,这可能是主要原因。
答案 0 :(得分:2)
每当您在Dockerfile中指定第二个FROM
时,就开始创建新映像。这就是为什么您只看到最后一张被保存和标记的图像的原因。
您可以通过创建多个Dockerfile(即在其Dockerfile中创建第一个映像,然后使用该映像来创建第二个映像)来完成所需的工作,所有映像都使用docker-compose
在容器之间进行协调。
答案 1 :(得分:0)