fix: run test docker gateway on host network
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
*
|
||||
!docker/
|
||||
!docker/Dockerfile.php
|
||||
!docker/config/
|
||||
!docker/config/php/
|
||||
!docker/config/php/conf.d/
|
||||
!docker/config/php/conf.d/zz-opcache.ini
|
||||
@@ -1,5 +1,5 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen 8000;
|
||||
server_name _;
|
||||
root /likeadmin_php/server/public;
|
||||
index index.html index.htm index.php;
|
||||
@@ -17,7 +17,7 @@ server {
|
||||
|
||||
location ~ \.php$ {
|
||||
include fastcgi_params;
|
||||
fastcgi_pass host.docker.internal:9000;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME /likeadmin_php/server/public$fastcgi_script_name;
|
||||
}
|
||||
|
||||
@@ -32,17 +32,11 @@ services:
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- server
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
ports:
|
||||
- "8000:80"
|
||||
network_mode: host
|
||||
volumes:
|
||||
- ../server:/likeadmin_php/server:ro
|
||||
- ./config/nginx/conf.d/sport-era.dev.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
- ./log/nginx/dev-logs:/logs
|
||||
networks:
|
||||
- sport-era-dev
|
||||
|
||||
admin:
|
||||
image: node:20-alpine
|
||||
working_dir: /app
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
完成内容:
|
||||
- `docker/docker-compose.dev.yml` 移除本地 MySQL、Redis 服务及后端对它们的启动依赖。
|
||||
- Docker 后端和定时任务通过独立的 `docker/.env.server` 连接测试服宿主机上的 MySQL `test_sbnews` 与 Redis `6377/DB4`。
|
||||
- PHP 后端使用宿主机网络,使仅允许 `127.0.0.1` 登录的测试 MySQL 用户仍可复用;Nginx 通过 `host.docker.internal:9000` 访问 PHP-FPM。
|
||||
- PHP 后端和 Nginx 使用宿主机网络,使仅允许 `127.0.0.1` 登录的测试 MySQL 用户仍可复用;Nginx 监听宿主机 `8000` 并通过 `127.0.0.1:9000` 访问 PHP-FPM,不占用现有 `80/443`。
|
||||
- `docker/.env.server` 作为私有运行配置,不进入 Git 或服务器代码部署包。
|
||||
|
||||
涉及模块:
|
||||
|
||||
@@ -27,7 +27,7 @@ $expectations = [
|
||||
[$compose, 'sport-era-dev-php:local', 'server 和 scheduler 应使用本地 PHP 镜像'],
|
||||
[$compose, 'docker/Dockerfile.php', '本地 PHP 镜像应由 Dockerfile 构建'],
|
||||
[$compose, './.env.server:/likeadmin_php/server/.env:ro', 'Docker 后端应使用独立的服务器环境文件'],
|
||||
[$compose, 'network_mode: host', 'Docker 后端应使用宿主机网络访问仅允许本机连接的测试数据库'],
|
||||
[$compose, 'network_mode: host', 'Docker 后端和 Nginx 应使用宿主机网络访问仅允许本机连接的测试数据库'],
|
||||
[$dockerfile, 'docker-php-ext-install', '本地 PHP 镜像必须安装 OPcache'],
|
||||
[$dockerfile, '0.0.0.0:9000', 'PHP-FPM 应允许 Nginx 容器通过宿主机网络访问'],
|
||||
[$dockerfile, 'opcache', '本地 PHP 镜像必须安装 OPcache'],
|
||||
@@ -35,7 +35,8 @@ $expectations = [
|
||||
[$opcacheIni, 'opcache.enable=1', 'OPcache 必须启用'],
|
||||
[$opcacheIni, 'opcache.validate_timestamps=1', '开发环境必须保留源码更新时间检测'],
|
||||
[$opcacheIni, 'opcache.revalidate_freq=0', '源码修改必须立即使 OPcache 失效'],
|
||||
[$nginxConfig, 'fastcgi_pass host.docker.internal:9000', 'Nginx 应通过宿主机网关访问 host 网络 PHP-FPM'],
|
||||
[$nginxConfig, 'listen 8000;', '宿主机网络 Nginx 应监听测试端口 8000'],
|
||||
[$nginxConfig, 'fastcgi_pass 127.0.0.1:9000', 'Nginx 应通过本机回环访问 host 网络 PHP-FPM'],
|
||||
[$uniappConfig, 'http://127.0.0.1:8000', 'H5 本地 API 应使用 IPv4 回环地址'],
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user