nginx-php
项目作者: 蘭雅
入驻时间: 2023-09-22
开源许可证: Apache

项目描述

linux/arm,linux/arm64,linux/amd64 多平台支持,甲骨文ARM、华为ARM、香橙派ARM 测试可以使用。Nginx-PHP Docker容器是一个集成了Nginx和PHP的容器化解决方案,旨在为开发人员和运维团队提供一个简便的方式来部署和管理Web应用程序。

项目介绍

linux/arm,linux/arm64,linux/amd64 多平台支持,甲骨文ARM、华为ARM、香橙派ARM 测试可以使用

# linux/arm,linux/arm64,linux/amd64 多平台支持
docker pull hongwenjun/nginx-php

启动 nginx-php-fpm8.2 容器

docker run -d -p 80:80 -p 443:443  \
    --cpus 0.8   --restart=always   \
    -v /var/www/html:/var/www/html   \
    --name  nginx-php      \
    hongwenjun/nginx-php

基于 debian:stable-slim 配置 Docker 容器 nginx-php-fpm8.2 镜像

# Docker 编译 Dockerfile
docker build -t nginx-php https://git.io/nginx-php
# 测试启动 nginx-php8.2-fpm 容器
docker run -d -p 8888:80 --name  nginx-php  nginx-php
# 进入容器
docker exec -it  nginx-php bash

https://hub.docker.com/ 登陆、建立公共容器 ,先构造容器,再推送到远程

docker login
Username:  hongwenjun    Password: ******
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
vim Dockerfile
docker build -t hongwenjun/nginx-php .
docker push hongwenjun/nginx-php

使用 buildx 构建多平台 Docker 镜像

  • 参考文章 https://blog.csdn.net/alex_yangchuansheng/article/details/103343697/
docker login
# 三个平台同时编译打包
docker buildx build -t hongwenjun/nginx-php \
--platform=linux/arm,linux/arm64,linux/amd64 . --push

Dockerfile 使用 supervisor 启动 php-fpm 和 nginx 服务

FROM debian
#  安装 nginx supervisor php7.4-fpm 省略 ......
#  映射目录和端口和三个配置文件
EXPOSE 80/tcp  443/tcp
# VOLUME [ /var/www/html  /etc/nginx/conf.d  /etc/nginx/cert ]
# COPY ./default             /etc/nginx/sites-enabled/default
# COPY ./supervisord.conf    /etc/supervisord.conf
# COPY ./start.sh            /start.sh
CMD ["/start.sh"]

default 是 debian nginx 默认配置修改成启用 php-fpm

#  /etc/nginx/sites-enabled/default
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        root /var/www/html;
        index index.html index.php index.nginx-debian.html;
        server_name _;
        location / {
                try_files $uri $uri/ =404;
        }
        # pass PHP scripts to FastCGI server
        location ~ .*\.php(\/.*)*$ {
                include snippets/fastcgi-php.conf;
        #       # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
}

FROM 多阶段镜像构建

FROM  hongwenjun/nginx-php  AS builder
RUN rm .dockerignore -rf
FROM scratch
COPY --from=builder .  .
CMD ["/start.sh"]

推荐 linuxserver/nginx 也支持php和更多插件

docker-compose (recommended)

---
version: "2.1"
services:
  nginx:
    image: ghcr.io/linuxserver/nginx
    container_name: nginx
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - </path/to/appdata/config>:/config
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

docker cli

docker run -d \
  --name=nginx \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 80:80 \
  -p 443:443 \
  -v </path/to/appdata/config>:/config \
  --restart unless-stopped \
  ghcr.io/linuxserver/nginx
百度统计