无法在docker中运行镜像xampp

问题描述 投票:0回答:1

我自己写了一个 Dockerfile,然后将其构建到一个映像中,但是当我运行该映像时,它不起作用,你能帮助我吗?

Dockerfile:

FROM ubuntu:latest


# Install XAMPP
RUN apt update && apt install -y wget && apt install net-tools
RUN rm -rf /var/lib/apt/lists/*
RUN wget -O xampp-installer  https://psychz.dl.sourceforge.net/project/xampp/XAMPP%20Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run 
RUN chmod 755 xampp-installer
RUN ./xampp-installer

# Expose ports for Apache and MySQL
EXPOSE 80 3306

# Start XAMPP
CMD ["/opt/lampp/lampp", "start"]

命令行界面

我尝试了相关文章,但它并不能解决我遇到的问题

linux docker dockerfile xampp
1个回答
0
投票

问题是

/opt/lampp/lampp start
启动一些后台任务然后终止。当它终止时,容器也会终止。

您需要一个持久的前台任务来保持容器运行。一种方法是使用

tail -f
监控错误日志。

FROM ubuntu:latest

RUN apt update -q && \
    apt install -q -y wget net-tools && \
    rm -rf /var/lib/apt/lists/* && \
    wget -O xampp-installer "https://psychz.dl.sourceforge.net/project/xampp/XAMPP Linux/8.2.12/xampp-linux-x64-8.2.12-0-installer.run" && \
    chmod 755 xampp-installer && \
    ./xampp-installer

EXPOSE 80 3306

CMD /opt/lampp/lampp start && tail -f /opt/lampp/logs/error_log

另一种选择是在

while true; do sleep 1000; done
声明末尾添加类似
CMD
的内容。

您的方法还会创建在同一容器中运行的多个服务。具体

  • MySQL
  • 阿帕奇和
  • ProFPTD。

让每个容器在单独的容器中运行可能是一个更好的主意,该容器可以由 Docker Compose 巧妙地编排。但如果您不是纯粹主义者,上述设置应该可以正常工作! 🙂

© www.soinside.com 2019 - 2024. All rights reserved.