chore(docker): 去除xdebug依赖,优化.env 环境变量

This commit is contained in:
2025-12-16 09:41:03 +08:00
parent 157ea7f46d
commit 09c859750e
7 changed files with 44 additions and 77 deletions

View File

@@ -27,23 +27,18 @@ services:
# 不然ThinkPHP 6.x 系列,会只加载 .env 文件,而不会加载 .env.local 文件,导致 .env.local 文件中的配置不会生效
APP_ENV: ${APP_ENV:-local}
APP_DEBUG: ${APP_DEBUG:-true}
XDEBUG_CONFIG: ${XDEBUG_CONFIG:-client_host=host.docker.internal client_port=9003}
PHP_IDE_CONFIG: serverName=docker-php
ports:
- "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM
- "${XDEBUG_POST:-9003}:9003" # Xdebug
- "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM
volumes:
- ./:/var/www/all_source
- ./src:/var/www/html
# 更新下载源列表以加速apt-get
- ./docker/debian/sources.list:/etc/apt/sources.list:ro
- ./docker/php/php.ini:/usr/local/etc/php/php.ini:ro
- ./docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- xdebug_logs:/tmp # Xdebug 日志目录
depends_on:
- db
healthcheck:
test: ["CMD", "bash", "-c", "curl -f http://localhost:9000/status && ps aux | grep '[p]hp think cron:schedule'"]
test: ["CMD", "bash", "-c", "curl -f http://localhost:9000/status"]
interval: 30s
timeout: 10s
retries: 3
@@ -119,7 +114,6 @@ services:
volumes:
mysql_db_data:
redis_data:
xdebug_logs:
networks:
sass-platform-net:

View File

@@ -25,23 +25,18 @@ services:
# 不然ThinkPHP 6.x 系列,会只加载 .env 文件,而不会加载 .env.local 文件,导致 .env.local 文件中的配置不会生效
APP_ENV: ${APP_ENV:-development}
APP_DEBUG: ${APP_DEBUG:-true}
XDEBUG_CONFIG: ${XDEBUG_CONFIG:-client_host=host.docker.internal client_port=9003}
PHP_IDE_CONFIG: serverName=docker-php
ports:
- "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM
- "${XDEBUG_POST:-9003}:9003" # Xdebug
- "${PHP_FPM_PORT:-9000}:9000" # PHP-FPM
volumes:
- ./:/var/www/all_source
- ./src:/var/www/html
# 更新下载源列表以加速apt-get
- ./docker/debian/sources.list:/etc/apt/sources.list:ro
- ./docker/php/php.ini:/usr/local/etc/php/php.ini:ro
- ./docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- xdebug_logs:/tmp # Xdebug 日志目录
depends_on:
- db
healthcheck:
test: ["CMD", "bash", "-c", "curl -f http://localhost:9000/status && ps aux | grep '[p]hp think cron:schedule'"]
test: ["CMD", "bash", "-c", "curl -f http://localhost:9000/status"]
interval: 30s
timeout: 10s
retries: 3
@@ -129,13 +124,7 @@ volumes:
type: none
o: bind
device: ./docker/redis_data/${APP_ENV}
xdebug_logs:
name: ${PROJECT_NAME}_${APP_ENV}_xdebug_logs
driver: local
driver_opts:
type: none
o: bind
device: ./docker/xdebug_logs/${APP_ENV}
networks:
sass-platform-net:

View File

@@ -1,10 +0,0 @@
# 使用官方PHP镜像
FROM php:7.4.33-fpm-dev-newshop
# 设置工作目录
WORKDIR /var/www/html
# 暴露端口
EXPOSE 9000 9003
CMD ["php-fpm"]

View File

@@ -46,9 +46,6 @@ RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
# 安装 Redis 扩展
RUN pecl install redis-5.3.7 && docker-php-ext-enable redis
# 安装 Xdebug兼容 PHP 7.4 的版本)
RUN pecl install xdebug-3.1.6 && docker-php-ext-enable xdebug
# 安装Composer
COPY --from=composer:2.2.25 /usr/bin/composer /usr/bin/composer
@@ -58,17 +55,14 @@ RUN composer --version
# 修改 PHP 配置
RUN echo "memory_limit=256M" > /usr/local/etc/php/conf.d/memory-limit.ini \
&& echo "upload_max_filesize=50M" >> /usr/local/etc/php/conf.d/uploads.ini \
&& echo "post_max_size=50M" >> /usr/local/etc/php/conf.d/uploads.ini
# 创建 Xdebug 配置
RUN echo "zend_extension=xdebug.so" > /usr/local/etc/php/conf.d/xdebug.ini
&& echo "post_max_size=50M" >> /usr/local/etc/php/conf.d/uploads.ini
# # 使用Composer安装项目依赖可选根据需要启用, 更多的时候,会出错,要在容器中执行操作)
# RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
# RUN composer install --no-dev --optimize-autoloader --working-dir=/var/www/html
# 暴露端口
EXPOSE 9000 9003
EXPOSE 9000
############ 查看 cron 进程
## 查看 cron 进程

View File

@@ -1,26 +1,24 @@
# 项目配置, 请根据实际情况修改
PROJECT_NAME=newshop
APP_DEBUG = true
APP_TRACE = true
# ThinkPHP 6.x 配置, 请根据实际情况修改
APP_ENV=development
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
# PHP/PHP-FPM 配置
PHP_VERSION=7.4
PHP_FPM_VERSION=7.4-fpm
PHP_FPM_PORT=9105
XDEBUG_POST=9108
[LANG]
default_lang = zh-cn
# 数据库配置
MYSQL_ROOT_HOST=%
MYSQL_DATABASE=shop_mallnew
MYSQL_USER=shop_mallnew
MYSQL_PASSWORD=shop_mallnew
MYSQL_PORT=3326
[DATABASE]
TYPE = mysql
HOSTNAME = db
DATABASE = shop_mallnew
USERNAME = shop_mallnew
PASSWORD = shop_mallnew
HOSTPORT = 3306
CHARSET = utf8mb4
DEBUG = true
# Redis 绑定端口及密码
REDIS_PASSWORD=luckyshop123!@#
REDIS_PORT=6499
# Nginx 暴漏端口
NGINX_PORT=8050
NGINX_SSL_PORT=8052
[REDIS]
HOST = redis
PORT = 6379
PASSWORD = 'luckyshop123!@#'
EXPIRY = 604800

View File

@@ -1,22 +1,24 @@
APP_DEBUG = true
APP_TRACE = true
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[LANG]
default_lang = zh-cn
[DATABASE]
TYPE = mysql
HOSTNAME = newshop_mysql
HOSTNAME = db
DATABASE = shop_dev
USERNAME = shop_mallnew
PASSWORD = shop_mallnew
HOSTPORT = 3306
CHARSET = utf8
CHARSET = utf8mb4
DEBUG = true
[RRDATABASE]
HOSTNAME = 192.168.2.64
[redis]
HOST = newshop_redis
[REDIS]
HOST = redis
PORT = 6379
PASSWORD = 'luckyshop123!@#'
EXPIRY = 604800

View File

@@ -10,16 +10,16 @@ default_lang = zh-cn
[DATABASE]
TYPE = mysql
HOSTNAME = production_mysql_host
DATABASE = shop_mallnew_prod
USERNAME = prod_user
PASSWORD = prod_password
HOSTNAME = db
DATABASE = shop_mallnew
USERNAME = shop_mallnew
PASSWORD = shop_mallnew
HOSTPORT = 3306
CHARSET = utf8
CHARSET = utf8mb4
DEBUG = false
[redis]
HOST = production_redis_host
[REDIS]
HOST = redis
PORT = 6379
PASSWORD = production_redis_password
EXPIRY = 86400
PASSWORD = 'luckyshop123!@#'
EXPIRY = 604800