搜索

📄 文章 📚 合集
热门搜索
🐘 PHP ⚡ Laravel 🎨 Vue.js ⚛️ React 📦 Yii 📘 JavaScript 🗄️ MySQL 🐳 Docker
返回合集

[板块7:Docker 容器化交付] - 09 -本地开发和服务器生产的Docker 配置

代码示例
## 一、本地开发版 `docker-compose.yml`

**特点:**
- 源码挂载,修改代码实时生效
- 适合开发调试
- 端口用 `8080`,避免冲突

```yaml
services:
  nginx:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php

  php:
    build: .
    volumes:
      - .:/var/www/html

  mysql:
    image: docker.1panel.live/library/mysql:8.0
    container_name: mysql
    restart: always
    environment:
      MYSQL_DATABASE: haozhanzhan
      MYSQL_ROOT_PASSWORD: 123456
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:
```

---

## 二、服务器生产版 `docker-compose.prod.yml`

**特点:**
- 使用远程镜像,不挂载源码
- 避开宝塔端口(`8088`、`3307`)
- 添加网络隔离和自动重启
- 只挂载必要的配置文件

```yaml
services:
  nginx:
    image: nginx:alpine
    ports:
      - "8088:80"
    volumes:
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php
    networks:
      - app-network
    restart: unless-stopped

  php:
    image: codeyoursmile/haozhanzhan:latest
    networks:
      - app-network
    restart: unless-stopped

  mysql:
    image: docker.1panel.live/library/mysql:8.0
    container_name: mysql
    restart: always
    environment:
      MYSQL_DATABASE: haozhanzhan
      MYSQL_ROOT_PASSWORD: 123456
    ports:
      - "3307:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

volumes:
  mysql_data:
```

---

## 三、使用方式

| 环境 | 文件 | 命令 |
|------|------|------|
| 本地开发 | `docker-compose.yml` | `docker-compose up -d` |
| 服务器生产 | `docker-compose.prod.yml` | `docker-compose -f docker-compose.prod.yml up -d` |

---

## 四、两个版本差异对照

| 配置项 | 本地开发版 | 服务器生产版 |
|--------|-----------|-------------|
| nginx 端口 | `8080:80` | `8088:80` |
| mysql 端口 | `3306:3306` | `3307:3306` |
| php 镜像 | `build: .` | `image: ...` |
| php 挂载 | `.:/var/www/html` | 无 |
| nginx 挂载 | `.:/var/www/html` | 无 |
| 网络 | 默认 | `app-network` |
| 重启策略 | 无 | `unless-stopped` |

---
none

🧸 adorable code

专注 PHP、JavaScript、Laravel、Vue.js、React、Yii 全栈开发。记录技术探索过程中的灵感与经验,分享工程实践洞见。

hello@adorablecode.com