wayofdev/nginx此Docker镜像提供了精简的Nginx设置,针对本地PHP开发环境进行了优化。
它旨在与wayofdev/docker-php-dev及其他(WOD)镜像无缝集成,为Web项目构建高效的本地开发生态系统。
k8s-alpine变体,用于在本地测试Kubernetes设置适用于开发Laravel应用、Symfony项目或任何PHP-based Web服务,在本地环境中构建接近生产环境的开发环境。
提供创建、测试和调试Web应用的本地基础环境。
如果您喜欢/使用此镜像,请考虑⭐️为其加星。感谢!
| 变体 | 描述 |
|---|---|
| dev-alpine | 用于本地开发环境,使用80和443端口。 |
| k8s-alpine | 针对k8s和本地环境优化,使用8880和8443端口,无root权限。 |
bashdocker pull wayofdev/nginx:k8s-alpine-latest
将k8s-alpine-latest替换为您需要的类型和标签。
以下是典型设置的docker-compose.yml示例:
yamlservices: app: image: wayofdev/php-dev:8.3-fpm-alpine-latest container_name: ${COMPOSE_PROJECT_NAME}-app restart: on-failure networks: - default - shared depends_on: - database links: - database volumes: - ./.github/assets:/assets:rw,cached - ./app:/app:rw,cached - ./.env:/app/.env - ~/.composer:/.composer - ~/.ssh:/home/www-data/.ssh environment: FAKETIME: '+2h' XDEBUG_MODE: '${XDEBUG_MODE:-off}' PHIVE_HOME: /app/.phive dns: - 8.8.8.8 extra_hosts: - 'host.docker.internal:host-gateway' web: image: wayofdev/nginx:k8s-alpine-latest container_name: ${COMPOSE_PROJECT_NAME}-web restart: on-failure networks: - default - shared depends_on: - app links: - app volumes: - ./app:/app:rw,cached - ./.env:/app/.env labels: - traefik.enable=true - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.rule=Host(`api.${COMPOSE_PROJECT_NAME}.docker`) - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.entrypoints=websecure - traefik.http.routers.api-${COMPOSE_PROJECT_NAME}-secure.tls=true - traefik.http.services.api-${COMPOSE_PROJECT_NAME}-secure.load***.server.port=8880 - traefik.docker.network=network.${SHARED_SERVICES_NAMESPACE}
wayofdev/php-dev镜像的app服务,用于PHP处理。web服务,用于提供应用访问。有关如何在Docker Compose设置中使用此镜像的全面实际示例,请参考wayofdev/laravel-starter-tpl仓库。该模板为Laravel项目提供了使用wayofdev/php-dev镜像的完整配置开发环境。
Nginx镜像预配置为针对PHP应用的最佳性能,但您可以根据具体需求进一步自定义。
默认配置通过Ansible模板生成,包括:
虽然配置主要通过Ansible模板管理,但您可以通过以下方式进一步自定义:
环境变量:镜像使用以下环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
| PHP_UPSTREAM_CONTAINER | app | PHP-FPM容器名称 |
| PHP_UPSTREAM_PORT | 9000 | PHP-FPM容器端口 |
在docker-compose.yml中设置这些变量:
yamlservices: web: image: wayofdev/nginx:k8s-alpine-latest environment: - PHP_UPSTREAM_CONTAINER=my-php-app - PHP_UPSTREAM_PORT=9001
卷挂载:如需更广泛的自定义,可挂载自己的配置文件:
yamlservices: web: image: wayofdev/nginx:k8s-alpine-latest volumes: - ./custom-nginx.conf:/etc/nginx/nginx.conf - ./custom-default.conf:/etc/nginx/conf.d/default.conf
镜像包含自签名SSL证书。如需使用自己的证书:
yamlservices: web: image: wayofdev/nginx:k8s-alpine-latest volumes: - ./certs/cert.pem:/etc/nginx/ssl/cert.pem - ./certs/key.pem:/etc/nginx/ssl/key.pem
如需高级配置:
src目录中的Ansible模板make generate重新生成Dockerfiles该项目使用一系列工具进行开发和测试。Makefile提供了简化开发流程的各种命令。
克隆仓库:
bashgit clone ***:wayofdev/docker-nginx.git && \ cd docker-nginx
Ansible用于生成Dockerfiles和配置。从Jinja模板源代码生成可分发的Dockerfiles:
bashmake generate
构建默认镜像:
bashmake build
此命令构建Makefile中IMAGE_TEMPLATE变量指定的镜像。默认设置为k8s-alpine。
构建特定镜像:
bashmake build IMAGE_TEMPLATE="k8s-alpine"
将8.3-fpm-alpine替换为所需的PHP版本、类型和操作系统。
构建所有镜像:
bashmake build IMAGE_TEMPLATE="k8s-alpine" make build IMAGE_TEMPLATE="dev-alpine"
这些命令将构建所有支持的镜像变体。
该项目采用测试方法确保Docker镜像的质量和功能。主要测试工具是dgoss,用于测试Docker容器。
可使用以下命令运行测试:
测试默认镜像:
bashmake test
此命令测试Makefile中IMAGE_TEMPLATE变量指定的镜像(默认是k8s-alpine)。
测试特定镜像:
bashmake test IMAGE_TEMPLATE="k8s-alpine"
将k8s-alpine替换为所需的镜像类型和操作系统。
测试所有镜像:
bashmake test IMAGE_TEMPLATE="k8s-alpine" make test IMAGE_TEMPLATE="dev-alpine"
测试配置在每个镜像变体的goss.yaml文件中定义,指定要运行的测试,包括:
运行make test命令时,将执行以下步骤:
goss.yaml中定义的测试。该项目有安全策略。
感谢您考虑为wayofdev社区做出贡献!我们欢迎各种形式的贡献。如果您想:
欢迎参与。贡献前,请查阅我们的贡献指南。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务