在ond Dockerfile中将php:7.2-alpine与nginx结合在一起

时间:2019-06-27 15:16:04

标签: php laravel docker nginx

我需要在一个dockerfile(在一个docker映像中)中将php:7.2 alpine与nginx结合使用,以进行laravel应用的生产部署。

所以我尝试了自己的方法,只能添加nginx包。我在图像中找不到任何nginx conf文件。我在docker hub中发现了很多人的图像。我对这些图像做了很多尝试,但效果不佳。

这是我的docker文件。

FROM php:7.2-alpine

RUN apk upgrade --update -q \
  && apk --no-cache -q add openssl zip unzip git mysql-client vim coreutils freetype-dev libpng-dev libjpeg-turbo-dev freetype libpng libjpeg-turbo libltdl libmcrypt-dev \
  && docker-php-ext-configure gd \
    --with-gd \
    --with-freetype-dir=/usr/include/ \
    --with-png-dir=/usr/include/ \
    --with-jpeg-dir=/usr/include/ && \
  NPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) \
  && docker-php-ext-install -j$(nproc) gd pdo pdo_mysql opcache zip calendar \
  && apk del --no-cache -q freetype-dev libpng-dev libjpeg-turbo-dev

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN apk --update add \
    supervisor

RUN apk add --update nginx && rm -rf /var/cache/apk/*
RUN mkdir -p /tmp/nginx/client-body

COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
#COPY website /usr/share/nginx/html
WORKDIR /var/www
COPY ./workspace-api /var/www
COPY ./workspace-api/supervisord.conf /etc/supervisord.conf
ADD ./workspace-api/root /etc/crontabs/
ADD ./workspace-api/php.ini /usr/local/etc/php

RUN composer install
RUN chmod -R 755  /var/www


RUN chmod +x /var/www/supervisor.sh
RUN /var/www/supervisor.sh

CMD ["nginx", "-g", "daemon off;"]

PS:我有用于多容器应用程序的docker-compose文件。但是在这种情况下,我只需要为laravel在一个映像中构建所有内容即可。

0 个答案:

没有答案