Вот мой 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
Я не вижу работающих машин.
Обычно файлы на сайтах с поддержкой являются символическими ссылками на доступные сайты. 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 или сделает что-нибудь, поэтому ваш контейнер не будет работать, если вы этого не сделаете
попробуйте поместить это в конец файла докеров CMD /usr/sbin/apache2ctl -D FOREGROUND
дайте мне знать, как это происходит