gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:41:01 26 4
gpt4 key购买 nike

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

问题是在那段时间连接总是失败。一切完成后我才能访问MySQL容器。

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

我怎样才能做到这一点?

docker-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

build/database/docker-compose.yml

FROM mariadb:5.5
ARG MYSQL_DATABASE
ARG MYSQL_ROOT_PASSWORD

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

build/web-server/docker-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

最佳答案

使用 docker 包括 2 个步骤:

  • 构建图像
  • 基于镜像创建容器并运行该容器

重点是你mysql客户端只能在第二步连接到服务器

Dockerfile 在构建镜像时“执行”。此时您没有任何容器,因此无法连接到它们。您需要移动命令RUN mysql -uroot -pmy-root-password -hdatabase 从 Dockerfile 到 entrypoint.sh

关于mysql - 将 Web 服务器容器连接到 MySQL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45485859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com