我正在学习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
答案 0 :(得分:1)
使用泊坞窗包括两个步骤:
关键是你mysql client
可以在第二步连接到服务器 。
Dockerfile
“执行”。在这段时间内,您没有任何容器,因此无法连接它们。
你需要移动命令RUN mysql -uroot -pmy-root-password -hdatabase
从Dockerfile
到entrypoint.sh