Реализовать передачу war файла из первого контейнера во второй c последующим запуском war файла
Я новичок в Docker, подскажите, пожалуйста, как корректно решить следующую задачу с помощью docker-compose: есть контейнер sborka, в нем собирается java web application (war файл на выходе), есть второй контейнер prod, запускающий приложение.
Dockerfile_sborka:
FROM zenika/alpine-maven
RUN apk update && apk upgrade && apk add git && apk add bash
RUN mkdir /tmp/test
WORKDIR /tmp/test
RUN git clone https://github.com/boxfuse/boxfuse-sample-java-war-hello.git
WORKDIR /tmp/test/boxfuse-sample-java-war-hello
RUN mvn package
WORKDIR /tmp/test/boxfuse-sample-java-war-hello/target
Dockerfile_prod:
FROM tomcat
EXPOSE 8080
WORKDIR /usr/local/tomcat/bin
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
при запуске контейнера выдает ошибку, сама сборка без ошибок:
docker-compose up -d
[+] Running 1/0 ⠿ Network 1_default Created 0.1s ⠋ Container sborka Creating 0.0s Error response from daemon: No command specified
docker-compose.yml
version: '3.7'
services:
sborka:
build: work7/sborka/
container_name: sborka
volumes:
- ./home/1/work7:/tmp/test/boxfuse-sample-java-war-hello/target
prod:
build: work7/prod/
container_name: prod
volumes:
- ./home/1/work7:/usr/local/tomcat/webapps
ports:
- "8080:8080"
depends_on:
- sborka
volumes:
sborka:
prod:
В одном docker контейнере все работало корректно:
FROM ubuntu:22.04
RUN apt update && apt install default-jdk maven git wget -y
RUN mkdir /tmp/test
WORKDIR /tmp/test
#ADD https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz
RUN wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz
RUN tar -xvf apache-tomcat-9.0.68.tar.gz
EXPOSE 8080
RUN git clone https://github.com/boxfuse/boxfuse-sample-java-war-hello.git
WORKDIR /tmp/test/boxfuse-sample-java-war-hello
RUN mvn package
WORKDIR /tmp/test/boxfuse-sample-java-war-hello/target
RUN cp hello-1.0.war /tmp/test/apache-tomcat-9.0.68/webapps/
CMD ["/tmp/test/apache-tomcat-9.0.68/bin/catalina.sh", "run"]