zoukankan      html  css  js  c++  java
  • dockercompose.yml 文件的编写版本3

    Docker Compose 配置文件的构建参数说明

    1 build

    在构建时应用的配置选项。

    build 可以指定为包含构建上下文路径的字符串

     自己构建镜像,构建镜像根据相对路径 ./dir 目录下的 dockerfile 文件构建  

    version: "3.9"
    services:
      webapp:
        build: ./dir

    或者,作为一个在上下文中指定路径的对象,以及可选的Dockerfileargs

    构建的镜像是根据 相对路径./dir下的 Dockerfile-alternate 文件

    version: "3.9"
    services:
      webapp:
        build:
          context: ./dir
          dockerfile: Dockerfile-alternate
          args:
            buildno: 1

    如果指定了image, 会打一个tag 是webapp:tag的镜像,默认的镜像的tag是 conpose的名字_service名字

    version: "3.9"
    services:
      webapp:
        build:
          context: ./dir
          dockerfile: Dockerfile-alternate
          args:
            buildno: 1
    image: webapp:tag

    2  context

    包含 Dockerfile 的目录的路径,或 git 存储库的 url。

    当提供的值是相对路径时,它被解释为相对于 Compose 文件的位置。此目录也是发送到 Docker 守护程序的构建上下文。

    Compose 使用生成的名称构建并标记它,然后使用该镜像 

    build:
      context: ./dir

    3  dockerfile

    指定构建的镜像的文件,这时根据Dockerfile-alternate 构建镜像

    build:
      context: .
      dockerfile: Dockerfile-alternate

    4 args

    添加参数,只能在镜像构建过程中访问的环境变量,需要在dockerfilr 中指定参数

    # syntax=docker/dockerfile:1
    
    ARG buildno
    ARG gitcommithash
    
    RUN echo "Build number: $buildno"
    RUN echo "Based on commit: $gitcommithash"

    这些args 在build键下,可以这样映射

    build:
      context: .
      args:
        buildno: 1
        gitcommithash: cdc3b19
    build:
      context: .
      args:
        - buildno=1
        - gitcommithash=cdc3b19

    注:

    在你的 Dockerfile 中,如果你ARGFROM指令指定, ARG在构建指令下是不可用的FROM如果您需要一个参数在两个地方都可用,请在FROM指令下指定它 有关用法详细信息,请参阅文档中了解 ARGS 和 FROM 如何交互部分。

    您可以在指定构建参数时省略该值,在这种情况下,它在构建时的值是 Compose 运行环境中的值。

    args:
      - buildno
      - gitcommithash

    使用布尔值时的提示

    YAML 布尔值 ( "true""false""yes""no""on""off") 必须用引号括起来,以便解析器将它们解释为字符串。

  • 相关阅读:
    CentOS 7下启动postfix服务报错:fatal: parameter inet_interfaces: no local interface found for ::1
    CentOS 7设置ulimit不生效的问题解决
    GitLab目录迁移方法
    GitLab查询当前版本
    CentOS 7安装Gitlab时报错:undefined method `downcase' for nil:NilClass
    .NET Core的依赖注入[1]: 控制反转
    .NET Core跨平台的奥秘[下篇]:全新的布局
    .NET Core跨平台的奥秘[中篇]:复用之殇
    .NET Core跨平台的奥秘[上篇]:历史的枷锁
    .NET Core多平台开发体验[4]: Docker
  • 原文地址:https://www.cnblogs.com/lulin9501/p/15634357.html
Copyright © 2011-2022 走看看