Docker Compose一键搭建跨境站环境
写在前面
很多刚接触跨境建站的朋友都在找一个能快速在服务器上部署运行环境的方案。
手动安装 Nginx、PHP、MySQL 等组件,费时还容易踩坑。
用 Docker Compose 可以一条命令拉起整个环境,今天这篇教程就围绕 Docker Compose 一键搭建跨境站环境 展开,从零开始讲清楚每一步,让你照着做就能完成。
环境检查与准备工作
操作之前,先确认服务器满足以下条件:
- 已安装 Docker 和 Docker Compose。如果还没装,推荐使用一键安装脚本:
curl -fsSL https://get.docker.com | bash,然后sudo apt install docker-compose(Ubuntu 20.04 以上)。 - 服务器内存至少 1GB,硬盘 20GB 以上。跨境站通常需要处理图片和数据库,空间大一些更稳妥。
- 开放 80 和 443 端口(如果计划上 SSL)。
- 准备好域名并解析到服务器 IP。
确认 Docker 是否正常运行:
docker --version
docker-compose --version
如果能正常显示版本号,就可以继续了。
编写 docker-compose.yml 文件
创建一个项目目录,比如 cross-border-site,然后在该目录下新建 docker-compose.yml 文件。
下面是一个常见的跨境站环境配置,包含 Nginx、PHP 7.4、MySQL 5.7 和 phpMyAdmin(方便管理数据库)。
version: '3.8'
services:
web:
image: nginx:stable-alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./www:/var/www/html
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/ssl:/etc/nginx/ssl
depends_on:
- php
php:
image: php:7.4-fpm-alpine
volumes:
- ./www:/var/www/html
environment:
- PHP_MAX_EXECUTION_TIME=120
db:
image: mysql:5.7
restart: always
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: site_db
MYSQL_USER: site_user
MYSQL_PASSWORD: site_user_password
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
environment:
PMA_HOST: db
PMA_PORT: 3306
depends_on:
- db
要点说明:
./www是你的网站文件目录,把跨境站的程序(如 WordPress、Shopify 本地版、自建电商系统)放到这里。./nginx/conf.d用来放单独的 nginx 配置文件(比如伪静态规则)。- 数据库密码建议用复杂密码,生产环境不要用简单密码。
- phpMyAdmin 默认映射到 8080 端口,方便通过浏览器管理数据库。
启动容器组
在项目目录下执行:
docker-compose up -d
-d 参数表示后台运行。
等待几秒钟,镜像会自动拉取并启动。
第一次启动时间较长,因为要下载镜像。
启动成功后用以下命令查看所有容器状态:
docker-compose ps
如果所有服务都显示 Up,就说明环境搭建成功了。
这时可以尝试访问服务器的公网 IP 或域名,应该能看到 Nginx 默认欢迎页(前提是 ./www 目录下还没有 index 文件)。
验证 PHP 是否工作,可以在 ./www 目录下新建一个 info.php:
访问 http://你的ip/info.php,如果显示 PHP 信息页面就表示 PHP 解析正常。
避坑提醒
- 端口冲突:如果服务器上已有 Nginx 或 Apache 占用了 80/443 端口,先停止它们,或者修改 docker-compose 的端口映射(比如改成
8080:80)。 - 文件权限:跨境站通常需要上传文件,目录权限要为
www-data:www-data。可以进入 PHP 容器执行chown -R www-data:www-data /var/www/html。 - 数据库连接:网站程序连接数据库时,主机名要填
db(即服务名称),而不是localhost。 - SSL 证书:如果需要 HTTPS,可以提前将证书文件放到
./nginx/ssl目录,并在 nginx 配置中引用。 - 内存不足:如果服务器内存只有 1GB,建议限制 MySQL 内存占用,在
docker-compose.yml的 db 服务下添加command: --innodb_buffer_pool_size=256M。
验证跨境站环境是否就绪
以上步骤完成后,可以上传一个完整的跨境站程序(例如 WordPress)到 ./www,然后通过浏览器安装。
如果安装过程无报错,说明环境完全可用。
你也可以用以下命令实时查看日志:
docker-compose logs -f web
如果出现问题,一般会在日志中显示具体原因。
常见错误包括目录不存在、配置文件语法错误、数据库连接失败等,根据日志提示排查即可。
简单总结一下,Docker Compose 一键搭建跨境站环境 的核心就是写好 docker-compose.yml 文件,然后一条命令启动。
本文提供的配置适合大多数跨境站场景,你可以根据自己的需求调整 PHP 版本、数据库版本或添加 Redis 缓存等服务。
如果执行过程中遇到其他问题,欢迎反馈交流。