Php

dockerfile 無法執行

  • March 31, 2017

這是我的 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

讓我知道事情的後續

引用自:https://serverfault.com/questions/841842