作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个自定义 github-action,它在 docker 容器中运行一些命令,但允许用户选择它们在哪个 docker 容器中运行(即,我可以在不同版本的运行时环境中运行相同的构建指令)
我的直觉是拥有我的.github/actions/main/action.yml
文件为
name: 'Docker container command execution'
inputs:
dockerfile:
default: Dockerfile_r_latest
runs:
using: 'docker'
image: '${{ inputs.dockerfile }}'
args:
- /scripts/commands.sh
##[error](Line: 7, Col: 10): Unrecognized named-value: 'inputs'. Located at position 1 within expression: inputs.dockerfile
.github/workflow/build_and_test.yml
文件是:
name: Test Package
on:
[push, pull_request]
jobs:
R_latest:
name: Test on latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
name: Checkout project
- uses: ./.github/actions/main
name: Build and test
with:
dockerfile: Dockerfile_r_latest
.github/actions/main/Dockerfile_r_latest
是:
FROM rocker/verse:latest
ADD scripts /scripts
ENTRYPOINT [ "bash", "-c" ]
最佳答案
有趣的方法!我不确定是否可以在 image
中使用表达式 Action 元数据的字段。我猜想唯一可以接受表达式而不是硬编码字符串的字段是 args
图像,以便 inputs
可以通过。
作为引用,这是 args
action.yml
的部分元数据。
https://help.github.com/en/articles/metadata-syntax-for-github-actions#args
我认为还有其他方法可以实现您想要做的事情。您是否尝试过使用 jobs.<job_id>.container
句法?这允许您指定将在其中运行作业步骤的图像。不过,这将要求您将图像发布到公共(public)存储库。所以请注意不要包含任何 secret 。
例如,如果您将镜像发布到 gowerc/r-latest
的 Docker Hub您的工作流程可能如下所示:
name: Test Package
on:
[push, pull_request]
jobs:
R_latest:
name: Test on latest
runs-on: ubuntu-latest
container: gowerc/r-latest
steps:
- uses: actions/checkout@master
name: Checkout project
- name: Build and test
run: ./scripts/commands.sh
uses
在步骤级别指定您的图像。 .然后您可以通过
args
传递命令执行你的脚本。
name: my workflow
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Check container
uses: docker://alpine:3.8
with:
args: /bin/sh -c "cat /etc/alpine-release"
关于docker - 如何在 github-actions 中使用变量 docker 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58476228/
我是一名优秀的程序员,十分优秀!