docker-compose.yaml写法,指定本地dockerfile创建(在无网络情况或者自定义的镜像)

发布时间 2023-11-10 15:58:01作者: 学不会xuebuhui

docker-compose.yaml关键字

在docker-compose.yaml文件中,定义了Docker Compose服务的配置。以下是一些常用的docker-compose.yaml文件中的参数介绍:

  1. version:指定Docker Compose文件的版本号,定义了使用的Docker Compose的语法版本。

  2. services:定义了要运行的服务及其配置。每个服务都可以指定镜像、端口映射、环境变量、挂载卷等。

  3. volumes:定义了数据卷的配置,可以指定数据卷的名称、驱动、路径等。

  4. networks:定义了网络的配置,可以指定网络的名称、驱动、IP地址等。

  5. environment:定义了环境变量的配置,可以为每个服务指定特定的环境变量。

  6. ports:定义了端口映射的配置,可以将容器内部的端口映射到宿主机上的端口。

  7. depends_on:定义了服务之间的依赖关系,可以指定一个服务依赖于另一个服务。

  8. restart:定义了服务的重启策略,可以指定在什么情况下重启服务。

这些是docker-compose.yaml文件中的一些常用参数,可以根据实际需要进行配置。

详解:

  1. bulid字段
    build 后面跟本地dockerfile路径
  2. context字段
    选项可以是 Dockerfile 的文件路径,也可以是到链接到 git 仓库的 url
    build:
      context: ./dir
    
  3. image字段
    services:
       web:                    # 服务名称,用户自定义
    	 image: busybox           # 镜像名称/镜像ID,如果本地不存在compose会拉取镜像  
    
    # 以下格式都可
       images: redis
    	images: mysql:latest
       images: example-registry.com:4000/postgresql      
    

完整写法:(推荐)

```
# 绝对路径
build: /path/build


# 相对路径
build:./build

# 设定上下文跟目录,以此目录指定Dockerfile
build:
	context: ../
	dockerfile: path/Dockerfile

# 给Dockerfile构建的镜像命名
build: ./dir
images: nginx:latest

# 构建过程中指定环境变量,构建成功后取消
build:
   context: .
   args:
	  buildno: 1
	  password: secret

or

build:
   context: .
   args:
	  - buildno=1
	  - password=secret

##与ENV不同,ARG允许空值
```

参考资料

https://www.cnblogs.com/ray-mmss/p/10868754.html