我尝试使用docker进行laravel项目,我使用 Ubuntu 作为基本图像和laravel依赖但是在docker-compose之后只有mysql和adminer容器正在运行。我的Dockerfile和docker-compose.yml文件位于
之下我的Dockerfile
FROM ubuntu:16.04
Run apt-get update
RUN apt-get update \
&& apt-get install -y --no-install-recommends software-properties-common
RUN apt-get update
RUN apt-get install -y apache2
RUN apt-get install -y php7.0 php7.0-mysql php7.0-mbstring
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN apt-get update
RUN apt-get install -y git zip unzip
RUN apt-get update
COPY laravel/ /var/www/html/
COPY laravel//vhost.conf /etc/apache2/sites-available/000-default.conf
WORKDIR /var/www/html
RUN chown -R www-data:www-data /var/www/html \
&& a2enmod rewrite
**** docker yml file ****
version: '2'
services:
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: mysql
ports:
- 8086:3306
adminer:
image: adminer
ports:
- 8085:8080
web:
image: laravel
ports:
- 8889:80
volumes:
- .bilbayt_admin/:/var/www/html/
答案 0 :(得分:1)
查看您的Dockerfile,您需要ENTRYPOINT或CMD,通常添加为Dockerfile的最后一行。这些条目告诉图像在docker run
时运行哪个命令(以docker-compose up
的迂回方式完成)。
答案 1 :(得分:1)
您需要添加一个cmd来启动apache /一个入口点。
最后就像下面的东西。
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
答案 2 :(得分:0)
现在,我的Docker文件看起来像这样,并且正常工作
FROM ubuntu:16.04运行apt-get update RUN apt-get update \
&安培;&安培; apt-get install -y --no-install-recommended software-properties-common
运行apt-get update
运行apt-get install
-y apache2运行apt-get install -y php7.0 php7.0-mysql php7.0-mbstring
RUN curl -sS https://getcomposer.org/installer | php -
--install-dir = / usr / local / bin --filename = composer
运行apt-get update
运行apt-get install -y git zip unzip
运行apt-get update
复制。在/ var / www / html等
COPY .docker / vhost.conf /etc/apache2/sites-available/000-default.conf
WORKDIR / var / www / html
RUN chown -R www-data:www-data / var / www / html \
&安培;&安培; a2enmod重写
CMD [“/ usr / sbin / apache2ctl”,“ - D”,“FOREGROUND”]