You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Concourse流水线YAML中声明配置Docker容器时区

回答

可以直接在Concourse流水线的YAML文件中声明配置容器时区,不需要额外修改容器运行的全局配置,常用两种实现方式:

  • 方式1:通过TZ环境变量指定(最简便,适配绝大多数预装了tzdata的基础镜像)
    直接在任务的params字段下声明时区变量即可,注意IANA时区名称大小写敏感,示例中的America/Montreal不能写成全小写格式,配置示例:

    jobs:
    - name: example-job
      plan:
      - task: tz-test-task
        config:
          platform: linux
          image_resource:
            type: docker-image
            source:
              repository: ubuntu # 替换为你实际使用的基础镜像
          params:
            TZ: "America/Montreal" # 在这里指定目标时区
          run:
            path: bash
            args:
            - -c
            - date # 执行date命令即可验证时区是否生效
    
  • 方式2:启动脚本内配置时区(适配精简版基础镜像,比如未预装tzdata的Alpine镜像)
    如果你用的基础镜像没有预装tzdata包,仅设置TZ变量不会生效,可以直接在任务的执行脚本中安装依赖并配置时区,配置示例:

    run:
      path: sh
      args:
      - -c
      - |
        # Debian/Ubuntu 系镜像执行以下命令
        apt-get update && apt-get install -y --no-install-recommends tzdata
        # Alpine 系镜像替换为以下命令:apk add --no-cache tzdata
        ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime
        echo "America/Montreal" > /etc/timezone
        date # 验证时区配置
    

如果你的流水线所有任务都需要统一时区,也可以提前把tzdata安装、时区配置的步骤打包进自定义基础镜像,流水线直接引用该镜像即可,不需要每个任务重复写配置逻辑。


内容的提问来源于stack exchange,提问作者soung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:30:49