ADC项目开发环境搭建文档 V2
ADC项目开发环境搭建文档 V2
本文档为ADC项目后端微服务开发环境搭建教程。
前置说明:
开发环境默认已关闭防火墙,即本地所有端口均是放通状态。
开发环境为window系统下运行Ubuntu, 镜像为 ubuntu-22.04.5-live-server-amd64 .iso 以下两种安装方式均可 ,
**注意:**虚拟机或WSL,网络模式均为NAT, NAT模式下自动分配 IP、子网掩码、网关和 DNS,无需手动设置,适合快速搭建网络环境。同时虚拟机 / WSL 会被分配一个私有 IP 地址。
Ubuntu安装方式一:在Vmware 中安装虚拟机
镜像下载地址为:https://releases.ubuntu.com/jammy/ubuntu-22.04.5-live-server-amd64.iso,具体安装方式请自行百科。
Ubuntu安装方式二(推荐):在Windows 11 中安装 WSL (Ubuntu-22.04 )
可能遇到的问题:无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”提取列表分发。无法与服务器建立连接
解决办法:配置全局梯子代理,具体请自行百科
安装过程如下:
打开 powerShell 执行 wsl -l -o
PS C:\Users\Administrator> wsl -l -o
以下是可安装的有效分发的列表。
使用“wsl.exe --install <Distro>”安装。
NAME FRIENDLY NAME
AlmaLinux-8 AlmaLinux OS 8
AlmaLinux-9 AlmaLinux OS 9
AlmaLinux-Kitten-10 AlmaLinux OS Kitten 10
AlmaLinux-10 AlmaLinux OS 10
Debian Debian GNU/Linux
FedoraLinux-43 Fedora Linux 43
FedoraLinux-42 Fedora Linux 42
SUSE-Linux-Enterprise-15-SP7 SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0 SUSE Linux Enterprise 16.0
Ubuntu Ubuntu
Ubuntu-24.04 Ubuntu 24.04 LTS
archlinux Arch Linux
kali-linux Kali Linux Rolling
openSUSE-Tumbleweed openSUSE Tumbleweed
openSUSE-Leap-16.0 openSUSE Leap 16.0
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_10 Oracle Linux 8.10
OracleLinux_9_5 Oracle Linux 9.5
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
PS C:\Users\Administrator> wsl --install Ubuntu-22.04
wsl: 使用旧分发注册。请考虑改用基于 tar 的分发。
正在下载: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS 已下载。
已成功安装分发。可以通过 “wsl.exe -d Ubuntu 22.04 LTS” 启动它
正在启动 Ubuntu 22.04 LTS...
denny@denny:~$ pwd限制 WSL 资源
在 Windows 当前用户目录(C:\Users\你的用户名\)新建 / 编辑 .wslconfig 文件:
memory根据实际电脑内存配置,物理机16G 配置8G即可
[wsl2]
memory=12GB
processors=6
swap=2GB
localhostForwarding=true
pageReporting=true
guiApplications=true保存后,管理员 PowerShell 重启 WSL:
wsl --shutdown配置WSL
注意!以下步骤均为进入Ubuntu系统后的操作,且所有操作均需以root用户运行
独立虚拟机环境请跳过此步,仅环境为WSL需进行如下操作:
进入WSL编辑
/etc/wsl.conf文件(需要 root 权限):sudo nano /etc/wsl.conf添加以下配置(指定不自动生成
hosts文件):[boot] systemd=true [network] generateHosts=false [automount] enabled=true root=/mnt/ options="metadata,umask=22,fmask=11,case=dir" [user] default=root保存并退出(nano 编辑器按
Ctrl+O保存,Ctrl+X退出)。编辑
/etc/sysctl.confsudo nano /etc/sysctl.conf末尾添加:
# 限制缓存内存,避免占满物理内存 vm.swappiness=10 vm.dirty_background_ratio=10 vm.dirty_ratio=30生效:
sudo sysctl -p重启 WSL 使配置生效:
在 Windows 终端powershell中执行:
wsl --shutdown # 关闭所有 WSL 实例 wsl # 重新启动 WSL重新配置
/etc/hosts:此时可以手动编辑
hosts文件,内容会被永久保留:sudo nano /etc/hosts创建hosts信息
执行
ipconfig查看当前ubuntu系统 的内网ip (eth0项即是)root@denny:~/lnmp2.2# ifconfig ..... eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.83 netmask 255.255.240.0 broadcast 192.168.1.255 inet6 fe80::215:5dff:fe28:2401 prefixlen 64 scopeid 0x20<link> ether 00:15:5d:28:24:01 txqueuelen 1000 (Ethernet) .....修改
/etc/hosts文件,添加一下信息,注意:ip地址(192.168.1.83)替换为实际的内网IP:192.168.1.83 nacos.adc.com 192.168.1.83 rabbitmq.adc.com 192.168.1.83 xxl-job.adc.com 192.168.1.83 mysql.adc.com 192.168.1.83 redis.adc.com配置WSL使用Windows 下的Git凭据,在Windows 中打开powershell,查找Windows 中的Git 安装路径
前提:Windows 下已安装Git
C:\Users\Administrator>git config --list --show-origin | findstr "credential.helper" file:D:/software/Git/etc/gitconfig credential.helper=manager C:\Users\Administrator>可见Git安装路径为
D:/software/Git对应WSL中的/mnt/d/software/Git在WSL 中执行如下命令:
#注意命令中的 /mnt/d/software/Git 根据要根据上一步中你实际的替换 git config --global credential.helper "/mnt/d/software/Git/mingw64/bin/git-credential-manager.exe"
安装Docker
运行如下docker自动安装及镜像源配置脚本脚本,按提示操作即可:
root@denny:~# bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
/dev/fd/63: line 1: #!/bin/bash: No such file or directory
·····
请选择操作模式:
1) 一键安装配置(推荐)
2) 修改轩辕镜像专属加速地址
# 此处选择1
请输入选择 [1/2]: 1
>>> 模式:一键安装配置
······
请选择版本:
1) 轩辕镜像免费版 (加速地址: docker.xuanyuan.me)
2) 轩辕镜像专业版 (加速地址: 专属域名 + docker.xuanyuan.me)
# 此处建议选择2 如果Ubuntu 中配置了代理可以访问docker官方镜像可以选择1,
# 选择2则需填写专属域名 23a2ijek1rxiz4.xuanyuan.run ,如此域名不可用请通过轩辕镜像官网获取(注册账号充值流量后可以获得专属域名)
请输入选择 [1/2]: 2
请输入您的轩辕镜像专属专属域名 (访问官网获取:https://xuanyuan.cloud): 23a2ijek1rxiz4.xuanyuan.run ······
等待 Docker 服务启动..
✅ Docker 服务已成功启动检查Docker版本
docker --version显示已安装的Docker版本信息
检查Docker服务状态
sudo systemctl status docker检查Docker Compose
sudo systemctl status docker显示已安装的Docker Compose版本信息
创建dokcer共享网络
docker network create etcdnet导入基础镜像
root@denny:~# wget -O tgkw-adc-hyper-v1.0.tar "https://tgkw-public.oss-cn-shenzhen.aliyuncs.com/tgkw-adc-hyper-v1.0.tar"
root@denny:~# file tgkw-adc-hyper-v1.0.tar
# 导入镜像(-i 指定输入文件)
# docker load -i tgkw-adc-hyper-v1.0.tar
root@denny:~# docker load -i tgkw-adc-hyper-v1.0.tar安装mysql
#进入`/home`目录创建 mysql文件夹
root@denny:/home# mkdir mysql
root@denny:/home# cd mysql/
#在`/home/mysql 文件夹下创建docker-compose.yml 文件
root@denny:/home/mysql# nano docker-compose.ymldocker-compose.yml文件内容如下:
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql8
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456 # 设置 MySQL root 用户密码
ports:
- "3306:3306"
volumes:
- ./mysql_data:/var/lib/mysql # 持久化数据
- ./mysql_conf:/etc/mysql/conf.d # 自定义配置文件(可选)
- /etc/hosts:/etc/hosts
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
networks:
- etcdnet
networks:
etcdnet:
external: true启动服务:
docker compose up -d创建基础数据库:
create database adc_nacos character set utf8mb4;
create database adc_xxl_job character set utf8mb4;
create database adc_public character set utf8mb4;
create database adc_user character set utf8mb4;
create database adc_hr character set utf8mb4;
create database adc_log character set utf8mb4;
create database adc_crm character set utf8mb4;导入数据库/tmp 替换成实际sql文件所在位置:
下述sql文件从此处 获取
use adc_nacos;
source /tmp/adc_nacos.sql
use adc_xxl_job;
source /tmp/adc_xxl_job.sql
use adc_public;
source /tmp/area_table_data.sql安装Redis
进入/home目录,创建redis文件夹,并在文件夹下创建docker-compose.yml 文件 ,文件内容如下
#进入`/home`目录创建 redis 文件夹
root@denny:/home# mkdir redis
root@denny:/home# cd redis/
#在`/home/redis 文件夹下创建docker-compose.yml 文件
root@denny:/home/redis# nano docker-compose.ymldocker-compose.yml文件内容如下:
version: '3.8'
services:
redis:
image: redis:7.2
container_name: redis
ports:
- "6379:6379"
volumes:
- ./redis_data:/data
command: redis-server --appendonly yes --requirepass 123456 # 设置密码为123456 ,此处仅示例,具体密码自行调整
restart: always
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
networks:
- etcdnet
networks:
etcdnet:
external: true启动服务:
docker compose up -d安装nacos
#进入/home目录创建nacos文件夹
root@denny:/home# mkdir nacos
root@denny:/home# cd nacos/
#在/home/nacos 文件夹下创建docker-compose.yml 文件
root@denny:/home/nacos# nano docker-compose.ymldocker-compose.yml文件内容如下:
注意:请核对文件中数据库账户密码
version: "3.8"
services:
nacos-server:
image: nacos/nacos-server:v2.5.1
container_name: nacos
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- DEPLOYMENT_TYPE=server
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql8
- MYSQL_SERVICE_DB_NAME=adc_nacos
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=123456
- MYSQL_SERVICE_PARAMS=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
- NACOS_AUTH_ENABLE=true
- NACOS_AUTH_IDENTITY_KEY=seqwd
- NACOS_AUTH_IDENTITY_VALUE=21eqwe
- NACOS_AUTH_TOKEN=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
volumes:
- ./nacos-logs:/home/nacos/logs
- ./nacos-data:/home/nacos/data # 持久化配置数据
- /etc/hosts:/etc/hosts
ports:
- "8848:8848" # 控制台 & OpenAPI
- "9848:9848" # gRPC 服务端口
restart: always
networks:
- etcdnet
networks:
etcdnet:
external: true启动服务:
docker compose up -dnacos 管理面板: http://192.168.1.83:8848/nacos 注意:ip地址(192.168.1.83)替换为实际的内网IP 账号:nacos 密码:nacos
登录后界面如下:新建命名空间 adc

创建后得到命名空间名称 和 命名空间ID ,请保存这个两个值。

安装rabbitmq
#进入/home目录创建rabbitmq文件夹
root@denny:/home# mkdir rabbitmq
root@denny:/home# cd rabbitmq/
#在/home/rabbitmq 文件夹下创建docker-compose.yml 文件
root@denny:/home/rabbitmq# nano docker-compose.ymldocker-compose.yml文件内容如下:
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
hostname: rabbitmq
ports:
- "5672:5672" # AMQP 端口
- "15672:15672" # 管理界面端口
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
restart: always # 生产环境建议 always
volumes:
- ./rabbitmq_data:/var/lib/rabbitmq # 持久化数据
networks:
- etcdnet
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
command: >
bash -c "rabbitmq-plugins enable rabbitmq_delayed_message_exchange; rabbitmq-server"
networks:
etcdnet:
external: true启动服务:
docker compose up -d访问:http://192.168.1.83:15672/ 账号:admin 密码 admin
注意:ip地址(192.168.1.83)替换为实际的内网IP
安装xxl-job-admin服务
#进入/home目录创建xxl-job-admin文件夹
root@denny:/home# mkdir xxl-job-admin
root@denny:/home# cd xxl-job-admin/
#在/home/xxl-job-admin 文件夹下创建docker-compose.yml 文件
root@denny:/home/xxl-job-admin# nano docker-compose.ymldocker-compose.yml文件内容如下:
注意:请核对文件中数据库账户密码
version: '3.8'
services:
xxl-job-admin:
image: xuxueli/xxl-job-admin:3.2.0
container_name: xxl-job-admin
restart: always
ports:
- "8089:8080"
environment:
PARAMS: >
--spring.datasource.url=jdbc:mysql://mysql8:3306/adc_xxl_job?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
--spring.datasource.username=root
--spring.datasource.password=123456
--server.port=8080
--xxl.job.accessToken=
volumes:
- ./applogs/:/data/applogs/ # 持久化 XXL-Job 日志
- /etc/hosts:/etc/hosts # 宿主机 hosts 映射
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "3"
networks:
- etcdnet
networks:
etcdnet:
external: true启动服务:
docker compose up -dxxl-job-admin管理面板:http://192.168.1.83:8089/xxl-job-admin/ 账号:admin 密码 123456
注意:ip地址(192.168.1.83)替换为实际的内网IP
安装Nginx
建议目录结构:
/home/nginx/
├─ docker-compose.yml
├─ conf.d/
│ └─ adc.confdocker-compose.yml:
services:
nginx:
image: nginx:1.27-alpine
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./conf.d:/etc/nginx/conf.d:ro
- ./home/wwwroot:/home/wwwroot/apps:ro
networks:
- etcdnet
networks:
etcdnet:
external: trueconf.d/adc.conf:
server {
listen 80;
server_name dev.adc.com;
root /home/wwwroot/apps;
index index.php index.html index.htm;
location /public/ {
proxy_pass http://adc-public:9601/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /user/ {
proxy_pass http://adc-user:9602/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /hr/ {
proxy_pass http://adc-hr:9603/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}启动:
docker compose up -d测试配置:
docker compose exec nginx nginx -t重载配置:
docker compose exec nginx nginx -s reload安装php 环境
非项目运行环境,仅用于 宿主机目录安装依赖
新建一个脚本文件:nano install-php.sh 并运行 sh install-php.sh 文件内容如下:
#!/bin/sh
set -e # 遇到错误立即退出
# 脚本标题和说明
echo "============================================="
echo " PHP 8.3 及扩展自动化安装脚本 "
echo "============================================="
# 1. 更新系统包列表并安装依赖
echo "\n[Step 1/5] 更新系统包管理器并安装基础依赖..."
apt update -y && apt install -y software-properties-common apt-transport-https lsb-release ca-certificates wget
# 2. 添加 Ondrej PHP 源(稳定的PHP版本源)
echo "\n[Step 2/5] 添加 PHP 8.3 官方源..."
if ! grep -q "ondrej/php" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
add-apt-repository -y ppa:ondrej/php
apt update -y
else
echo "Ondrej PHP 源已存在,跳过添加步骤"
fi
# 3. 安装 PHP 8.3 CLI 及需要独立安装的扩展
echo "\n[Step 3/5] 安装 PHP 8.3 CLI 及扩展..."
# 仅保留需要独立安装的扩展包(经验证的有效包名)
apt install -y php8.3-cli \
php8.3-bcmath \
php8.3-ctype \
php8.3-curl \
php8.3-dom \
php8.3-fileinfo \
php8.3-gd \
php8.3-gmp \
php8.3-iconv \
php8.3-igbinary \
php8.3-mbstring \
php8.3-msgpack \
php8.3-mysqlnd \
php8.3-pdo \
php8.3-pdo-mysql \
php8.3-pdo-odbc \
php8.3-pdo-pgsql \
php8.3-pdo-sqlite \
php8.3-phar \
php8.3-posix \
php8.3-readline \
php8.3-redis \
php8.3-simplexml \
php8.3-sockets \
php8.3-swoole \
php8.3-sysvmsg \
php8.3-sysvsem \
php8.3-sysvshm \
php8.3-tokenizer \
php8.3-xlswriter \
php8.3-xml \
php8.3-xmlreader \
php8.3-xmlwriter \
php8.3-zip \
php8.3-opcache
# 4. 安装 Composer(改用官方通用安装方式,避免哈希过期问题)
echo "\n[Step 4/5] 安装 Composer..."
# 先清理可能残留的文件
rm -f composer-setup.php composer.phar
# 方式1:使用官方自动安装脚本(推荐,自动处理哈希验证)
if ! php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" ; then
# 备用方式:使用wget下载,解决copy函数失败的情况
echo "直接copy失败,尝试用wget下载..."
wget -O composer-setup.php https://getcomposer.org/installer
fi
# 跳过哈希验证(避免过期问题),直接安装
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
# 清理安装文件
rm -f composer-setup.php
# 验证Composer是否安装成功
if command -v composer >/dev/null 2>&1; then
echo "Composer 安装成功!"
else
echo "Composer 安装失败,尝试手动安装..."
# 终极备用方案:直接下载最新稳定版composer.phar
wget -O /usr/local/bin/composer https://getcomposer.org/composer-stable.phar
chmod +x /usr/local/bin/composer
fi
# 5. 验证安装结果
echo "\n[Step 5/5] 验证安装结果..."
echo "\nPHP 版本信息:"
php -v
echo "\nComposer 版本信息:"
composer -V
echo "\n已安装的 PHP 核心扩展验证(示例):"
# 验证几个关键扩展是否存在
php -m | grep -E 'bcmath|redis|swoole|pdo_mysql|opcache|json|openssl'
echo "\n============================================="
echo " PHP 8.3 及扩展安装完成! "
echo "============================================="拉取基础服务代码
进入 /home/wwwroot 目录,依次拉取adc-public、adc-user、adc-hr、adc-log 仓库代码。
拉取完成后wwwroot 目录内容如下:
root@denny:/home/wwwroot# ls
adc-hr adc-public adc-user adc-log apps default注意:必须先启动 public 服务
进入adc-public目录
生成 .env
root@denny:/home/wwwroot/adc-public# cp .env.example .env避免各sh脚本可能存在换行符问题执行一次如下命令:
sed -i 's/\r$//' *.sh
sed -i 's/\r$//' .githooks/pre-commit编辑根目录下的 rp_env.sh 将配置区域的各项密码配置好,以下wield示例,具体值根据实际替换
# ========= 配置区域 =========
# APP 环境
APP_ENV="dev"
# 数据库
# DB_HOST="mysql.adc.com"
DB_HOST="mysql8"
DB_PORT="3306"
DB_USERNAME="root"
DB_PASSWORD="123456"
# Redis
# REDIS_HOST="redis.adc.com"
REDIS_HOST="redis"
REDIS_PORT="6379"
REDIS_AUTH="123456"
# Nacos
# NACOS_IP="nacos.adc.com"
NACOS_IP="nacos"
NACOS_PORT="8848"
NACOS_USER="nacos"
NACOS_PWD="nacos"
##nacos命名空间名称
NACOS_GROUP_NAME="adc"
##nacos命名空间id
NACOS_NAME_SPACE_ID="c5803e0a-64df-4750-af7c-20d458f8ee57"
# RabbitMQ
# AMQP_HOST="rabbitmq.adc.com"
AMQP_HOST="rabbitmq"
AMQP_PORT="5672"
AMQP_USER="admin"
AMQP_PASSWORD="admin"
# XXL-Job
XXL_JOB_ADMIN_ADDRESS="http://xxl-job.adc.com:8089/xxl-job-admin"编辑完后执行
sh rp_env.sh启动public 服务
root@denny:/home/wwwroot/adc-public# docker compose -f docker-compose-dev.yml up -d首次启动过程中 将字段执行依赖安装,可以通过以docker 日志 查看安装情况:
docker logs -f adc-public可能遇到的问题:偶现php依赖安装失败
如果安装失败,可尝试进入容器 执行 composer update, 命令如下:
root@denny:/home/wwwroot/adc-public# docker exec -it adc-public bash
0c810a9b0191:/opt/www# composer update
Loading composer repositories with package information
Updating dependencies
.....如果无法进入容器,删除容器后重新启动容器, 操作如下
root@denny:/home/wwwroot/adc-public# docker stop adc-public
root@denny:/home/wwwroot/adc-public# docker rm adc-public
root@denny:/home/wwwroot/adc-public# docker compose -f docker-compose-dev.yml up -d进入adc-user 目录
生成 .env
root@DCS-denny:/home/wwwroot/adc-user # cp .env.example .env避免各sh脚本可能存在换行符问题执行一次如下命令:
sed -i 's/\r$//' *.sh
sed -i 's/\r$//' .githooks/pre-commit将public 目录下 rp_env.sh 文件复制到 adc-user 目录下
cp ../adc-public/rp_env.sh ./执行
sh rp_env.sh启动adc-user 服务
root@denny:/home/wwwroot/adc-hr# docker compose -f docker-compose-dev.yml up -d可能遇到的问题:参考public服务
进入adc-hr目录
生成 .env
root@DCS-denny:/home/wwwroot/adc-user # cp .env.example .env避免各sh脚本可能存在换行符问题执行一次如下命令:
sed -i 's/\r$//' *.sh
sed -i 's/\r$//' .githooks/pre-commit将public 目录下 rp_env.sh 文件复制到 adc-user 目录下
cp ../adc-public/rp_env.sh ./执行
sh rp_env.sh启动adc-hr 服务
root@denny:/home/wwwroot/adc-hr# docker compose -f docker-compose-dev.yml up -d可能遇到的问题:参考public服务
进入adc-log目录
生成 .env
root@denny:/home/wwwroot/adc-log # cp .env.example .env避免各sh脚本可能存在换行符问题执行一次如下命令:
sed -i 's/\r$//' *.sh
sed -i 's/\r$//' .githooks/pre-commit将public 目录下 rp_env.sh 文件复制到 adc-log 目录下
cp ../adc-public/rp_env.sh ./执行
sh rp_env.sh启动adc-log 服务
root@denny:/home/wwwroot/adc-log# docker compose -f docker-compose-dev.yml up -d可能遇到的问题:参考public服务
再拉取自己所负责服务的代码部署,步骤同上
注意事项
1、代码热更新
通过docker-compose-dev.yml 启动的各服务容器 已开启热更新 Watcher,代码更新后服务会立即重启,但是删除文件和修改.env需要手动重启才能生效。
2、关于本地代码开发
一、如果是vmware 虚拟机安装的ubuntu ,请在本地(windows)项目文件夹中 clone 仓库并通过自动上传(phpstorm中工具项)保持本地与虚拟机中的代码同步,也可用phpstorm的远程开发,此处不详细说明,具体可百科。
关于依赖,可将虚拟机中已安装的依赖即vendor 目录下载到本地,也可在本地通过如下命令安装依赖(本地需php8.3 环境):
composer install --no-scripts --ignore-platform-reqs二、WSL 中可直接通过phpstorm编辑器打开ubuntu 内目录进行编辑,
具体操作可参考 JetBrains 官方文档:
同时在phpstorm 中打开终端 直接进入的 是WSL的Ubuntu 终端,可直接进行相关命令操作:

3.WSL 空间占用越来越大的问题
本质原因是 WSL 的 ext4.vhdx 虚拟磁盘「写满后不会自动收缩」,哪怕你之前删除过大量文件,物理空间也没被回收
先找到wsl Ubuntu-22.04 的ext4.vhdx文件位置,一般默认是C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
具体以你自己电脑上的为准。
以管理员身份打开 PowerShell,执行:
wsl --terminate Ubuntu-22.04
wsl --shutdown
taskkill /F /IM vmcompute.exe
net stop LxssManager && net start LxssManager继续在管理员 PowerShell 中执行 diskpart 命令(路径需与原系统一致):
diskpart
select vdisk file="C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"
compact vdisk
exit验证压缩效果:查看 ext4.vhdx 大小,会 降至 20G 左右。
在WLS中使用代理
手动找正确的 Windows IP
在 Windows 的 CMD 或 PowerShell 里运行:
ipconfig
找到 "以太网适配器 vEthernet (WSL)" 那一行的 IPv4 地址,类似:
172.31.160.1
以太网适配器 vEthernet (WSL (Hyper-V firewall)):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::eef6:cd89:65e9:9353%40
IPv4 地址 . . . . . . . . . . . . : 172.31.160.1
子网掩码 . . . . . . . . . . . . : 255.255.240.0
默认网关. . . . . . . . . . . .
在 WSL 里执行:
export http_proxy="http://172.31.160.1:7897"
export https_proxy="http://172.31.160.1:7897"
export all_proxy="socks5://172.31.160.1:7897"
测试一下:
curl -I https://www.google.com
如果成功,写入永久配置
bashcat >> ~/.bashrc << 'EOF'
# WSL Proxy
export http_proxy="http://172.31.160.1:7897"
export https_proxy="http://172.31.160.1:7897"
export all_proxy="socks5://172.31.160.1:7897"
EOF
source ~/.bashrc注意:172.31.160.1 这个 IP 在 WSL 重启后可能会变。如果以后失效,再用 ipconfig 重新查一下