gpt4 book ai didi

运行 LAMP 的 Dockerfile (Ubuntu)

转载 作者:行者123 更新时间:2023-12-01 15:03:34 24 4
gpt4 key购买 nike

我正在尝试使用以下内容创建 Docker (LAMP) 镜像

Dockerfile :

FROM ubuntu:latest
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apache2 \
mysql-server \
php7.0 \
php7.0-bcmath \
php7.0-mcrypt
COPY start-script.sh /root/
RUN chmod +x /root/start-script.sh && /root/start-script.sh

启动脚本.sh:
#!/bin/bash
service mysql start
a2enmod rewrite
service apache2 start

我用以下方法构建它:
docker build -t resting/ubuntu .

然后运行它:
docker run -it -p 8000:80 -p 5000:3306 -v $(pwd)/html:/var/www/html resting/ubuntu bash

问题是, MYSQLApache2服务未启动。
如果我运行 /root/start-script.sh在容器中手动,端口 80 可以很好地映射到端口 8000,但我无法连接到 MYSQL127.0.0.1:5000 .

当我使用图像启动容器并将 MYSQL 映射到我的主机时,如何确保服务正在运行?

最佳答案

您需要将脚本的执行更改为 CMD操作说明。

FROM ubuntu:latest
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apache2 \
mysql-server \
php7.0 \
php7.0-bcmath \
php7.0-mcrypt
COPY start-script.sh /root/
RUN chmod +x /root/start-script.sh
CMD /root/start-script.sh

虽然这有效,但这不是管理容器的正确方法。您应该为您的 Apache2 准备一个容器另一个是 MySQL .

看看这篇使用 Docker-Compose 构建 LAMP 堆栈的文章: https://www.kinamo.be/en/support/faq/setting-up-a-development-environment-with-docker-compose

关于运行 LAMP 的 Dockerfile (Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497351/

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