gpt4 book ai didi

php - Docker mysql 环境

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

我有一个基于 FROM php:alpine 的 Dockerfile,我正在尝试将 mysql 添加到构建中。

FROM php:alpine

COPY test-data/ /var/www/

RUN apk add --update --no-cache \
mysql

# Composer
RUN curl -s https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer
ENV COMPOSER_ALLOW_SUPERUSER=1

WORKDIR /var/www

我的问题是成功构建后,我尝试并使用 mysql 环境覆盖运行容器,但无法登录容器内的 mysql。

$ docker run -e MYSQL_DATABASE=homestead -e MYSQL_USER=homestead -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=secret -ti --rm idecardo /bin/sh

测试mysql登录失败

$ mysql -uroot -p # with password "secret"

最佳答案

由于您是新手 - 始终尝试通过复制现成的工作代码并分解该代码中正在执行的操作来学习。

对于 Docker:

  1. 您可以看到 mysql 的 docker 存储库 - https://hub.docker.com/_/mysql/在描述部分,您将看到不同 MySQL 版本的各种 docker 文件的链接。
  2. 将其中之一作为您的灵感来源,例如 8.0/Dockerfile 的链接:https://github.com/docker-library/mysql/blob/fc3e856313423dc2d6a8d74cfd6b678582090fc7/8.0/Dockerfile
  3. 请注意,在该 dockerfile 中的 mysql 安装说明之后,有 Entrypoint 和 CMD 说明。

一般来说:

由于您希望 php 和 mysql 在 docker 上工作 - 我的建议是您查看 docker-compose。 Docker 容器可以通过多种方式运行,并且 docker-compose 允许您启动多个 docker 容器,并在它们之间共享一些文件夹。在这种情况下,您需要启动单独的 mysql 容器和单独的 php 容器,在它们之间共享主机数据文件夹并启动您的代码。

此外,还可以在线观看一些视频教程 - 它们详细解释了 docker 的基础知识及其工作原理。

关于php - Docker mysql 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893448/

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