这是我的 Dockerfile:
FROM php:5.5-apache
COPY sites-enabled.tgz /root/sites-enabled.tgz
RUN cd /etc/apache2/sites-enabled && \
tar xvf /root/sites-enabled.tgz
我有许多需要配置的站点,我认为配置它们的最简单方法是将站点的配置文件复制到适当的目录中。不幸的是,我不能这样做。
我做docker build -t mywebsite .
然后docker run -d mywebsite
。这两个命令似乎都运行得很好。最后一个给了我一个十六进制编码的字符串。但是当我这样做时,我docker ps
看不到任何机器在运行。
通常,sites-enabled 中的文件是指向可用站点的符号链接。idk 如果在每种情况下都是这种情况,但如果是这样,那么似乎可能有必要复制站点可用的站点。例如。
FROM php:5.5-apache
COPY sites-available.tgz /root/sites-available.tgz
COPY sites-enabled.tgz /root/sites-enabled.tgz
RUN cd /etc/apache2/sites-available && \
tar xvf /root/sites-available.tgz
RUN cd /etc/apache2/sites-enabled && \
tar xvf /root/sites-enabled.tgz
不幸的是,这也不起作用。对于sites-available.tgz,它可以,但不是sites-enabled.tgz。
有任何想法吗?
容器按照你说的做,它在文件上创建一个副本并放入容器中,然后进入目录,最后解压文件,就是这样。您没有声明
CMD
将初始化 apache 或执行任何操作的命令,因此除非您这样做,否则您的容器不会保持运行尝试将其放在 dockerfile 的末尾
CMD /usr/sbin/apache2ctl -D FOREGROUND
让我知道事情的后续