【发布时间】:2016-07-09 08:43:34
【问题描述】:
Dockerfile
FROM phusion/baseimage:0.9.16
MAINTAINER Raheel <raheelwp@gmail.com>
# Apache
RUN apt-get update
RUN apt-get -y install apache2
# PHP
RUN apt-get -y install python-software-properties
RUN add-apt-repository ppa:ondrej/php
RUN apt-get update
RUN apt-get -y install php7.0
RUN apt-get -y install libapache2-mod-php7.0 php7.0-curl php7.0-json
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
docker-composer.yaml
version: '2'
services:
frontend:
build: ./frontend
ports:
- "80:80"
volumes:
- ./frontend:/var/www/html/frontend
我正在尝试在 docker 中运行我的 laravel 应用程序。我面临两个问题
1 - 当我运行 docker-compose up 时,容器内的 apache 服务器不会自动启动。每次我必须登录容器并执行service apache2 start。根据我的搜索,我发现我在 Dockerfile 中编写的 CMD 命令是我们启动 apache 的方式,但在我的情况下不起作用
2 - 当我登录到容器并转到我的应用程序文件夹 /var/www/html/frontend 时,它的用户是 1000:1000 的东西。我希望它们位于 www-data:www-data 下。但我不希望将其添加到我的 Dockerfile 中,因为我只想保留我的 dockerfile 用于安装 apache 和 php。我怎样才能通过使用docker-compose.yaml 或任何其他方式来实现这一点。
更新:Docker 容器日志
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 9
Jul 10 08:27:33 6d5c09e83a98 syslog-ng[15]: syslog-ng starting up; version='3.5.3'
谢谢
【问题讨论】:
-
如果该命令没有启动apache,那它是做什么的呢?没有日志和命令输出很难调试。
-
如何查看日志?我在 ubuntu 16
-
docker-compose logs frontend -
这是说没有服务前端,但是我试图查看容器的日志。请查看我粘贴的有问题的更新部分。
标签: php apache docker docker-compose dockerfile