docker - 自动从 php fpm 镜像启动 Nginx
问题描述
我有以下 Dockerfile
FROM php:7.2-fpm
LABEL maintainer="youri@smilinggents.nl"
RUN apt-get update && \
apt-get install -y nginx git zip
COPY default.conf /etc/nginx/conf.d/default.conf
RUN apt-get update && \
apt-get install -y libpng-dev libxml2-dev libcurl3-dev libcurl4-openssl-dev && \
docker-php-ext-install gd && \
docker-php-ext-install soap && \
docker-php-ext-install pdo_mysql && \
docker-php-ext-install intl && \
docker-php-ext-install zip
RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
WORKDIR /var/www/pidz/
RUN mkdir ./var/
COPY ./app app
COPY ./bin bin
COPY ./src src
COPY ./web web
COPY ./composer.json composer.json
COPY ./composer.lock composer.lock
ARG SSH_PRIVATE_KEY
# some ssh stuff I perform
RUN export SYMFONY_ENV=staging && \
composer install
EXPOSE 80
当我构建 Dockerfile
docker build . --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)"
并运行图像
docker run -p 80:80 <image>
Nginx 没有运行,但是当我nginx
在容器内运行时,Nginx 已启动
如何让 Nginx 自动启动?
解决方案
因为你没有启动nginx。
docker run -p 80:80 <image> -d nginx
或者您可以在 Dockerfile 的末尾添加CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
官方Dockerfile,然后当您运行映像时,它将自动启动
推荐阅读
- sql - sql连接场景
- node.js - Express JS 会话清理
- nginx - 使用 nginx 映射动态数据需要帮助
- html - 如何为我的移相器游戏添加背景图像?
- performance-testing - 如何下载作为性能中心测试的一部分编写的文件或自定义日志?
- amazon-cognito - 使用 Cognito 对 API 网关方法进行身份验证?
- middleware - 如何将旧的中间件 func 转换为新的中间件 func
- jenkins - Jenkins 声明式管道:在阶段之外运行脚本{} 块
- c - 为什么我的输出是分段失败?
- python - 时间戳减法必须具有相同的时区