docker 升级小坑之 ~ docker-compose 文件启动语法错误

背景:最近将docker升级到19.03.8,升级后发现无法运行docker-compose文件,记录下处理过程

1. 运行时提示

ERROR: The Compose file '/XX/docker-compose.yml' is invalid because:
Unsupported config option for services.php-fpm-7.0: 'net'
提示配置语法(net)错误。
当前docker-compose版本 version: "0.1"

2. 查看当前docker版本

Client: Docker Engine - Community
 Version:           19.03.8
 API version:       1.40

3. 查看docker版本对应的docker-compose版本

[docker官方文档](https://docs.docker.com/compose/compose-file/#host-or-none "docker官方文档")

Compose file format    Docker Engine release
3.8    19.03.0+
3.7    18.06.0+
3.6    18.02.0+
3.5    17.12.0+
3.4    17.09.0+
3.3    17.06.0+
3.2    17.04.0+
3.1    1.13.1+
3.0    1.13.0+
2.4    17.12.0+

发现对应的compose版本为3.8

4. 调整docker-compose文件版本3.8及语法配置

net配置在该语法版本下替换为networks配置。
新版本语法需要创建自定义网络,语法示例如下:
networks:
  frontend:
  backend:
注意在下面加上标识为外部网络的配置:external:true
v0.1配置语法:
net:"host"

v3.8配置语法:
version: "3.8"
services:
  php-fpm-7.0:
    image: docker.xx.com:5000/rocketmq-php:7.0
    volumes:
      - /Users/local:/code/www/deploy/webroot
      - phpsocket:/dev/shm
    networks:
      - local
volumes:
  phpsocket:
networks:
    local:
      external: true

5. 执行网络创建命令

语法示例:docker network create [name]
实际执行:docker network create local

6.重新运行docker-compose.yml文件就OK啦

本作品采用《CC 协议》,转载必须注明作者和本文链接
会飞的大象
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!