gpt4 book ai didi

docker - 如何在 github-actions 中使用变量 docker 图像?

转载 作者:行者123 更新时间:2023-12-02 17:52:07 26 4
gpt4 key购买 nike

我正在尝试编写一个自定义 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

还有我的 Dockerfile .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

引用: https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer

或者,您也可以使用 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"

引用: https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#example-using-a-docker-hub-action

关于docker - 如何在 github-actions 中使用变量 docker 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58476228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com