我的web docker容器图像未运行

时间:2018-02-14 16:14:18

标签: docker laravel-5 docker-compose

我尝试使用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/

3 个答案:

答案 0 :(得分:1)

查看您的Dockerfile,您需要ENTRYPOINTCMD,通常添加为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”]