Docker compose mysql 容器在依赖它的应用程序之后运行

我有一个简单的 Java 应用程序,它依赖于 MySQL。


这是我的docker-compose.yaml样子:


version: "3.3"

services:

  docker-mysql:

    image: mysql:latest

    environment:

      - MYSQL_ROOT_PASSWORD=root

      - MYSQL_DATABASE=test

      - MYSQL_PASSWORD=root

    volumes:

      - /var/lib/mysql

    ports:

      - 3306:3306

  my-app:

    build: .

    depends_on:

      - docker-mysql

    ports:

      - 8080:8080

这是我Dockerfile创建一个容器化应用程序,即my-app:


FROM openjdk:8

EXPOSE 8080

ADD /target/Service1-0.0.1.jar Service1.jar

ENTRYPOINT ["java","-jar","Service1.jar"]

当我尝试时docker-compose up,应用程序成功启动 Tomcat,但无法连接到 MySQL 容器,因为它在应用程序之后启动:

http://img3.mukewang.com/616640a30001ce2217470377.jpg

慕侠2389804
浏览 199回答 2
2回答

慕虎7371278

通常,它应该出现在 db 容器之后。docker logs docker-mysql_1 --tail 25 -fPaste的结果是什么。另外,尝试为您的 db 容器添加一个卷部分,如下所示environment:  - MYSQL_ROOT_PASSWORD=root  - MYSQL_DATABASE=test  - MYSQL_PASSWORD=rootvolumes:  - /var/lib/mysql
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java