如何确保mysql容器在docker compose中启动并运行后构建web映像?

pepwfjgg  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(273)

在当前建造顺序下
生成本地主机映像
构建web映像
运行localhost容器
运行web容器
这将在步骤2中失败,因为src处的java不会编译,因为它不能编译到localhost,因为localhost映像没有运行。解决方案是将当前生成顺序更改为:
在当前建造顺序下
生成本地主机映像
运行localhost容器
构建web映像
运行web容器
如何在dockerfile和/或docker-compose.yml中实现这一点?
dockerfile文件

  1. # Build
  2. FROM maven:latest AS BUILD
  3. COPY src /usr/src/app/src
  4. COPY pom.xml /usr/src/app
  5. RUN cd /usr/src/app &&\
  6. mvn install
  7. # ENVIRONMENT
  8. FROM openjdk:16
  9. COPY --from=BUILD /usr/src/app/target/*.jar app.jar
  10. ENTRYPOINT ["java","-jar","/app.jar"]

docker-compose.yml公司

  1. version: '3'
  2. services:
  3. localhost:
  4. image: mysql:5.7.34
  5. environment:
  6. - MYSQL_ROOT_PASSWORD=root
  7. - MYSQL_DATABASE=virtual_election
  8. - MYSQL_USER=myapp-user
  9. - MYSQL_PASSWORD=password
  10. network_mode: host
  11. web:
  12. image: web
  13. restart: on-failure
  14. build:
  15. context: ./
  16. dockerfile: Dockerfile
  17. depends_on:
  18. - localhost
  19. network_mode: host

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题