docker下debian8编译安装nginx+php
以下是一个基于Docker的简化版本的Dockerfile,用于在Debian 8 (Jessie) 环境中编译安装 Nginx 和 PHP-FPM。
FROM debian:jessie
# 安装 Nginx 依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gnupg \
libssl-dev \
libtool \
make \
zlib1g-dev \
libpcre3-dev \
&& rm -rf /var/lib/apt/lists/*
# 安装 Nginx
RUN curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
&& echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
&& echo "deb-src http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends nginx \
&& rm -rf /var/lib/apt/lists/*
# 安装 PHP-FPM 依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gnupg \
lsb-release \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*
# 添加 PHP 存储库并安装 PHP-FPM
RUN add-apt-repository ppa:ondrej/php && apt-get update \
&& apt-get install -y --no-install-recommends \
php7.0-fpm \
php7.0-cli \
php7.0-common \
php7.0-json \
php7.0-opcache \
php7.0-mysql \
php7.0-mbstring \
php7.0-xml \
php7.0-gd \
php7.0-curl \
&& rm -rf /var/lib/apt/lists/*
# 清理不必要的文件并设置运行时用户
RUN find /etc/nginx ! -name "nginx.conf" -type f -exec rm -f {} \; \
&& find /etc/nginx ! -name "sites.available" -type f -exec rm -f {} \; \
&& find /usr/bin/ -type f -name "php*" -exec rm -f {} \; \
&& sed -i 's/;daemon off;//' /etc/nginx/nginx.conf \
&& sed -i 's/user www-data;//' /etc/nginx/nginx.conf \
&& sed -i 's/group www-data;//' /etc/nginx/nginx.conf \
&& useradd -M -s /sbin/nologin nginx
# 暴露端口
EXPOSE 80 9000
# 启动 Nginx 和 PHP-FPM
CMD service php7.0-fpm start && nginx -g 'daemon off;'
这个Dockerfile做了以下事情:
- 更新包索引并安装编译Nginx所需的依赖。
- 导入Nginx官方GPG密钥,并添加Nginx的稳定版本仓库。
- 安装Nginx。
- 清理APT缓存。
- 更新包索引并安装PHP-FPM以及常用的PHP模块。
- 添加PHP官方的PPAs仓库并安装PHP 7.0及其常用扩展。
- 清理APT缓存。
- 删除不必要的Nginx和PHP文件,并调整Nginx配置以指定用户。
- 创建一个非交互式用户来运行Nginx。
- 暴露Nginx和PHP-FPM
评论已关闭