首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用drone.yml自定义日期时间字符串格式的无人机名称对接器图像标记

使用drone.yml自定义日期时间字符串格式的无人机名称对接器图像标记
EN

Stack Overflow用户
提问于 2020-09-25 10:19:45
回答 1查看 2.1K关注 0票数 1

我有这个drone.yml,它运行良好,并生成一个码头映像。我正在建立与两个标签的码头形象。

  1. 在GitHub中提交。
  2. 最新版本

我想要做的是在第一个标记(GitHub中提交的SHA)中附加YYYY DD_HH格式的图像创建日期和时间。

代码语言:javascript
复制
---
name: api-graph-base
kind: pipeline
type: docker

steps:

  - name: push-azure-nonprod
    when:
      event:
        - push
        - pull_request
      branch:
        - master
    image: plugins/docker
    settings:
      username: abc
      password:
        from_secret: xyz
      repo: nonprodazure/graph-base-api
      build_args:
        - LOG_LEVEL=debug
      registry: nonprodregistry.azurecir.io
      custom_dns: [100.100.100.100, 99.99.99.99]
      tags:
        - '${DRONE_BUILD_FINISHED}-${DRONE_COMMIT}'
        - latest
      dockerfile: Dockerfile

无人机构建日志中的图像标记:

  • /usr/local/bin/docker标记nonprodazure/graph-base-api:1600986079-c692df4346acada797d9541135f37124b15d1183 c692df4346acada797d9541135f37124b15d1183

您可以在日志中看到附加在docker图像标记名称中的UNIX时间戳(1600986079)。如何将${DRONE_BUILD_FINISHED} - Unix时间戳的值更改为DateTime人类可读的字符串格式(YYYY DD_HH)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-25 20:56:11

这就是我需要做的,以人类可读的格式而不是UNIX格式获取日期/时间。

代码语言:javascript
复制
---
name: api-graph-base
kind: pipeline
type: docker

steps:
  - name: send-tags-to-tags-file
    image: node
    when:
      event:
        - push
        - pull_request
    commands:
      - echo -n "$(date +'%Y-%m-%d_%H-%M')_${DRONE_COMMIT}, latest" > .tags

  - name: push-azure-nonprod
    when:
      event:
        - push
      branch:
        - master
    image: plugins/docker
    settings:
      username: abc
      password:
        from_secret: xyz
      repo: nonprodazure/graph-base-api
      build_args:
        - LOG_LEVEL=debug
      registry: nonprodregistry.azurecir.io
      custom_dns: [100.100.100.100, 99.99.99.99]
      dockerfile: Dockerfile

下面两个标签为码头形象创建。第二个标签名现在包含所需的日期-时间格式。

解决方案:

  • 删除现有步骤中的标记。
  • 添加了一个在.tags文件中生成标记的新步骤。

如果需要在同级进程(管道步骤)之间共享数据,则需要通过写入磁盘和从磁盘读取这些信息来共享这些信息。停靠插件将自动从.tags文件中读取标记。不能在一个进程中创建环境变量,而不能在同级进程中读取该环境变量。

参考文献:

  1. 对码头图像使用自定义生成的标记。
  2. 使用.tags文件配置多个标签
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64062210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档