将Web服务器容器连接到MySQL容器

时间:2017-08-03 13:35:39

标签: mysql docker docker-compose

我正在学习docker,我使用卷创建了一个带有持久数据库的MySQL容器,我希望在docker-compose up --build过程中从Web容器连接到MySQL容器。

问题是在此期间连接始终失败。一切都完成后我才能访问MySQL容器。

以下RUN mysql -uroot -pmy-root-password -hdatabase文件中的行build/web-server/docker-compose.yml始终失败。

我该如何做到这一点?

搬运工-compose.yml

version: '3'
services:
    database:
        container_name: kadu-database
        build:
            context: build/database
            dockerfile: Dockerfile
    web-server:
        container_name: kadu-web-server
        links:
            - database
        depends_on:
            - database
        build:
            context: build/web-server
            dockerfile: Dockerfile

建立/数据库/搬运工-compose.yml

FROM mariadb:5.5
ARG MYSQL_DATABASE
ARG MYSQL_ROOT_PASSWORD

RUN apt-get update
RUN apt-get install patch --assume-yes

建立/ Web的服务器/搬运工-compose.yml

FROM ubuntu:16.04
ARG WEB_USERNAME
ARG MYSQL_DATABASE
ARG MYSQL_ROOT_PASSWORD
RUN apt-get update --quiet=2 && apt-get install mariadb-client --quiet=2 
RUN mysql -uroot -pmy-root-password -hdatabase

1 个答案:

答案 0 :(得分:1)

使用泊坞窗包括两个步骤:

  • 建立图像
  • 基于图像创建容器并运行此容器

关键是你mysql client可以在第二步连接到服务器

在构建图像时,

Dockerfile“执行”。在这段时间内,您没有任何容器,因此无法连接它们。 你需要移动命令RUN mysql -uroot -pmy-root-password -hdatabase  从Dockerfileentrypoint.sh