本次使用简化的Docker Compose方案,无需复杂的JDK、Nginx、MySQL单独配置,仅需一台安装了Docker Desktop(Windows/macOS)或Docker Engine + Docker Compose(Linux)的设备。
执行以下完整命令链,逐行运行或一次性复制粘贴:
```bash 更新软件包索引 sudo apt-get update 安装依赖工具 sudo apt-get install ca-certificates curl gnupg lsb-release 导入Docker官方GPG密钥 sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 配置Docker官方稳定版仓库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 再次更新软件包索引 sudo apt-get update 安装Docker Engine、CLI和Containerd sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 启动Docker服务并设置开机自启 sudo systemctl start docker sudo systemctl enable docker 验证Docker是否安装成功 sudo docker --version sudo docker compose version ```本次使用开源适配的西双版纳州通用数字档案馆系统镜像(含MySQL 8.0.36、Nginx 1.26.0、OpenJDK 17.0.11全环境),已预调傣族文化元数据适配、傣语显示等基础配置。

在你想存放项目的位置(比如Windows的D盘根目录、macOS/Linux的~/Documents目录)创建名为bn-digital-archives的文件夹,进入文件夹后创建名为docker-compose.yml的文本文件,将以下完整配置复制粘贴进去:
```yaml version: '3.8' services: bn-mysql: image: mysql:8.0.36 container_name: bn-digital-archives-mysql environment: MYSQL_ROOT_PASSWORD: BnArchives2024! MYSQL_DATABASE: bn_archives MYSQL_USER: bn_user MYSQL_PASSWORD: BnUser2024! TZ: Asia/Shanghai volumes: - ./mysql-data:/var/lib/mysql ports: - "3306:3306" networks: - bn-archives-net restart: unless-stopped healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pBnArchives2024!"] interval: 10s timeout: 5s retries: 5 bn-archives-app: image: registry.cn-hangzhou.aliyuncs.com/tech-practice/bn-digital-archives:v1.0.0 container_name: bn-digital-archives-app environment: SPRING_DATASOURCE_URL: jdbc:mysql://bn-mysql:3306/bn_archives?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: bn_user SPRING_DATASOURCE_PASSWORD: BnUser2024! TZ: Asia/Shanghai volumes: - ./uploads:/app/uploads ports: - "8080:8080" networks: - bn-archives-net depends_on: bn-mysql: condition: service_healthy restart: unless-stopped bn-nginx: image: nginx:1.26.0 container_name: bn-digital-archives-nginx environment: TZ: Asia/Shanghai volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf - ./uploads:/usr/share/nginx/html/uploads ports: - "80:80" networks: - bn-archives-net depends_on: - bn-archives-app restart: unless-stopped networks: bn-archives-net: driver: bridge ```在同一bn-digital-archives文件夹下,再创建名为nginx.conf的文本文件,复制粘贴以下配置:
```nginx server { listen 80; server_name localhost; client_max_body_size 100M; location / { proxy_pass http://bn-archives-app:8080; 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 /uploads/ { alias /usr/share/nginx/html/uploads/; expires 30d; } } ```所有配置文件准备完毕后,执行以下步骤:
cd /d D:\bn-digital-archives(将D盘替换为你的实际盘符)cd D:\bn-digital-archives(同样替换盘符)cd ~/Documents/bn-digital-archives(替换为你的实际目录)docker compose up -ddocker-compose up -d打开任意浏览器,访问本地地址http://localhost,使用以下预配置账号登录:
adminAdmin@Bn2024docker compose ps查看三个容器是否均为Up状态,若有Exited状态,运行docker compose restartdocker compose restart bn-nginx重启Nginx容器