繁体   English   中英

docker-compose问题与开始顺序

[英]docker-compose issue with starting order

我今天开始学习docker-compose,遇到以下问题。

version : '2'
services:
    myService1:
       build: .
       image: newimagename
       restart: always
       ports:
          - "13000:13000"
       links :
          - database1
       command: ["./wait-for-it.sh", "172.17.0.1:3306", "--"]

    database1:
       image: mydatabaseimage
       ports:
        - "3306:3306"
       restart: always
       environment:
        - MYSQL_ALLOW_EMPTY_PASSWORD=yes
        - MYSQL_USER=somename
        - MYSQL_PASSWORD=somepassword

细节:

映像mydatabaseimage是根据mariadb映像(已填充数据库条目)构建的映像。

myService1是从Java项目的现有dockerfile构建的。 问题是,为了使dockerfile编译项目,它需要数据库条目。 要进行编译,它将尝试从172.17.0.1:3306查询一些信息。

当我运行此docker-compose时,它将运行dockerfile,然后在Java编译期间将失败,表示无法连接到正确的数据库。 (仅当我之前已经在Docker容器中运行了数据库映像时,我才能运行此docker-compose ...)

我一直在这里的https://docs.docker.com/compose/startup-order/中查看该教程,并尝试使用wait-for-it.sh

我想知道我该怎么做才能首先运行database1映像,等到完成后再myService1甚至开始运行其dockerfile?

谢谢。

尝试在myService1设置depends_on

version: "3"
services:
    myService1:
       build: .
       depends_on: database1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM