首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将秘密作为环境变量传递给Docker Github Action?

在Docker Github Action中将秘密作为环境变量传递的方法如下:

  1. 打开Github仓库,进入"Settings"选项卡,然后点击"Secrets"。
  2. 在"Secrets"页面,点击"New repository secret"按钮。
  3. 输入秘密的名称和值,然后点击"Add secret"保存。
  4. 在Github Action的工作流文件中,可以通过${{ secrets.SECRET_NAME }}的方式引用该秘密的值。

下面是一个示例的工作流文件:

代码语言:txt
复制
name: Docker Build

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Docker
        uses: docker/setup-buildx-action@v1

      - name: Build and push Docker image
        env:
          SECRET_KEY: ${{ secrets.MY_SECRET }}
        run: |
          docker build -t my-image .
          docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
          docker tag my-image ${{ secrets.DOCKER_USERNAME }}/my-image
          docker push ${{ secrets.DOCKER_USERNAME }}/my-image

在上面的示例中,我们定义了一个名为"build"的job,它会在代码推送到"main"分支时触发。在这个job中,我们首先使用actions/checkout@v2 action来检出代码,然后使用docker/setup-buildx-action@v1 action来设置Docker环境。

接下来,在"Build and push Docker image"步骤中,我们设置了一个名为"SECRET_KEY"的环境变量,并将其值设置为${{ secrets.MY_SECRET }}${{ secrets.MY_SECRET }}会引用之前在Github仓库中设置的名为"MY_SECRET"的秘密。

通过这种方式,我们可以将秘密作为环境变量传递给Docker Github Action,并在构建和推送Docker镜像的过程中使用它。请注意,为了安全起见,秘密的值在Github Action的日志中会被隐藏。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用 GitHub Actions 构建 Docker 镜像

本文将帮助您使用GitHub操作设置一个工作流,该工作流将构建和标记Docker镜像并将其推送到Docker Hub注册表。...Action 因此,要开始使用GitHub操作,请在GitHub中的repo页面上单击Actions选项卡: 您现在应该看到一个类似于以下内容的页面: 这一步将我们登录到Docker Hub Registry...我们输出密码,然后将其传递给docker login命令。不过,这里有一些新的东西,那就是我们正在使用的秘密。...GitHub在每个存储库的设置中有一个部分,您可以在其中设置用于GitHub操作等的秘密。...要找到secrets,请单击存储库顶部的设置,然后单击左侧导航列表中的Secrets,然后添加您需要的secrets,在本例中是我们的Docker Hub用户名和密码: 标签和发布 最后一步是在我们的GitHub

32710

Dockerfile解析

3、Dockerfile常用保留字指令 参考tomcat8的Dockerfile入门:https://github.com/docker-library/tomcat FROM   基础镜像,当前新镜像是基于哪个镜像的...,指定一个已经存在的镜像作为模板,第一条必须是from MAINTAINER   镜像维护者的姓名和邮箱地址 RUN   容器构建时需要运行的命令   两种格式: shell格式:RUN ...命令格式:ENTRYPOINT ["","","",…]   ENTRYPOINT可以和CMD以启用,一般是变参才会使用CMD,这里的CMD等于是在给ENTRYPOINT参。   ...当制定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成 "" 图片地址...仓库名、标签都是的镜像,俗称dangling image 2、我们自己创建一个虚悬镜像看看 第一步:创建Dockerfile from ubuntu CMD echo 'action is success

78930

如何将你的Python项目全面自动化?

所有这些都是本文要讨论的内容,我们将看看如何将它们添加到 Python 项目中! 本文最初发布于 Martin Heinz 的个人博客,由 InfoQ 中文站翻译并分享。...这个目标与之前的目标非常相似,但是在上面的示例1.0.0中,我们使用作为参数传递的版本而不是git标签作为版本 。...}} 我们从 CodeClimate 开始,首先输出变量GIT_BRANCH,我们会用环境变量GITHUB_REF来检索这个变量。...sonar.projectKey=MartinHeinz_python-project-blueprint sonar.sources=blueprint 除此之外,我们可以使用现有的sonarcloud-github-action...注意:关于如何获取和设置前面提到的所有令牌和秘密的步骤都在存储库的自述文件中:https://github.com/MartinHeinz/python-project-blueprint/blob/master

91240

DockerFile详解以及测试案例

3、Docker常用保留字指令 Docker中文文档 Dockerfile介绍-DockerInfo FROM:基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from...ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样; 也可以在其它指令中直接使用这些环境变量, 比如:WORKDIR...> 当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成 > > 案例如下:假设已通过 Dockerfile...构建了 nginx:test 镜像: > > | 是否参 | 按照dockerfile编写执行 | 参运行...这样最终的文件系统会包含所有底层的文件和目录 5、虚悬镜像 仓库名、标签都是的镜像,俗称dangling image 1、编写Dockerfile from ubuntu CMD echo 'action

67230

揭示Kubernetes秘密秘密

更安全的 Kubernetes 原生方法使用秘密对象,并在 pod 规范中引入它们(例如,文件或环境变量)。 在下一节中,我将介绍 Kubernetes 提供的保护层。...因此,作为第一种安全措施,如果你将敏感信息作为环境变量递给分离舱,则应该将它们分离并将它们创建为秘密对象。由于秘密是独立的资源,你也可以在 RBAC 中以不同的方式处理它们并限制访问。...风险 当涉及到秘密时,第三方工具和扩展将识别潜在的风险,并对其进行缓解。风险可分为以下几类: etcd:作为秘密存储的最终位置,etcd 必须加密和良好的保护。...但是,它的集成可能有点棘手,所以一定要首先研究如何将 KMS 集成到集群中,并确保它符合你的安全操作。.../bitnami-labs/sealed-secrets [4] SOPS: https://github.com/mozilla/sops

90160

利用 Github Action 一键编译多平台 Docker 镜像

在一番调查之后发现,他们可能用了 Github 提供的 Action 来自动编译不同平台的镜像。但事实上在 .github/workflows 目录下面的所有配置文件均与 Docker 镜像编译无关。...不过,Github Action 帮助我们自动编译出不同平台架构的 Docker 镜像这件事确是可行的。...自动化构建   这里,笔者仅对如何利用 Github Action 自动编译出不同平台架构的 Docker 镜像进行叙述。...Action 配置   在 Github 代码库的 .github/workflows/ 目录下新建 docker-image.yml 配置文件(文件名可自定义)。...Secret 配置   由于我们需要保护我们的 DockerHub 账户和密码的安全,所以需要通过 Secret 的变量来传递给 Github Action

1.9K20

【云原生】DockerFile解析

DockerFile常用保留字指令 参考tomcat8的dockerfile入门 https://github.com/docker-library/tomcat http://链接 MAINTAINER...镜像维护者的姓名和邮箱地址 FROM 基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板,第一条必须是from RUN 容器构建时需要运行的命令 两种格式 shell...ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样; 也可以在其它指令中直接使用这些环境变量, 比如...ENTRYPOINT 指令指定的程 ENTRYPOINT可以和CMD一起用,一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 参。...当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成 优点 在执行docker run的时候可以指定

98730

使用 GitHub Action来托管AutoML软件

我们将使用pycaret2.0,一个开源的、少代码行数的Python机器学习库来开发一个简单的AutoML解决方案,并使用GitHub Action将其部署为Docker容器。...了解什么是容器以及如何将AutoML解决方案部署为Docker容器。 什么是GitHub Action以及如何使用它们来托管AutoML软件。 什么是AutoML?...接下来的三行用于将数据作为pandas数据帧读取。第12行到第15行是根据环境变量导入相关模块,第17行之后是PyCaret初始化环境、比较基本模型和在设备上保存性能最好的模型的函数。...步骤3-创建action.yml Docker操作需要元数据文件。元数据文件名必须是action.yml或者action.yaml. 元数据文件中的数据定义操作的输入、输出和主入口点。.../pycaret/pycaret-git-actions/blob/master/action.yml 环境变量dataset、target和usecase分别在第6、9和14行声明。

54020

Kubernetes(六) - Secret和私有仓库认证

Kubernetes官方文档:https://kubernetes.io/docs/reference/ Kubernetes官方Git地址:https://github.com/kubernetes/...环境变量 我们在使用Secret第一个场景就是作为容器的环境变量,大部分容器都提供使用环境变量配置密码的功能,你的程序只需要读取到这个环境变量使用这个环境变量的内容去链接到对应的服务就可以正常使用了,如下我们初始化一个...,最常用的就是HTTPS这样的TLS证书,使用证书程序(比如Nginx没法使用环境变量来配置证书)需要一个固定的物理地址去加载这个证书,我们吧之前配置用户名和密码作为文件的方式挂在到某个目录下 > vim...因为映射成了文件那么对权限也是可以控制的 volumes: - name: foo secret: secretName: mysecret defaultMode: 256 然后,秘密将被挂载...,/etc/foo并且由秘密卷挂载创建的所有文件都将具有权限0400。

59810

GitHub Actions构建Docker镜像

GitHub Actions是为GitHub上的项目添加CI / CD工作流的自动化工具。注意:在本文中,我们将讨论将CI / CD工作流程集成到使用Docker的项目中的各个步骤。...Repository 9 uses: elgohr/Publish-Docker-Github-Action@master 10 with: 11 name...我们使用名为checkout的GitHub Action从存储库中提取源代码。该操作将您的存储库签出到$GITHUB_WORKSPACE,以便您的工作流可以访问存储库的内容。...lines 8–9:这里我们使用GitHub动作publish docker,它构建一个docker镜像并将其推送到docker hub。...在“ 秘密”选项卡中,从工作流文件(*DOCKER_USERNAME*和*DOCKER_PASSWORD*)中添加具有相同名称的秘密密钥,然后粘贴以下值: 就这样-提交您的代码并推送它。

2.4K10

聊聊如何将gitlab ci的环境变量透传给k8s deployment.yaml

jenkins,没接触过过gitlab的cicd,朋友他对技术也是比较有追求,他发现这家公司k8s的yaml文件,很多字段其实可以抽出来,配合cicd动态传入,而不是把那些字段直接写死在yaml文件,比如docker...gitlab来做cicd 可以查看官网链接,如下 https://docs.gitlab.com/ee/ci/README.html 2、envsubst命令了解 a、envsubst的作用 这个命令可以把环境变量递给文件...,并通过管道,把deployment.yml的内容传递给kubectl 如何将gitlab ci的环境变量透传给k8s deployment.yaml 示例: 注: 朋友的公司采用业务服务和部署服务....gitlab-ci.yml通过触发部署服务的触发器进行部署,示例只列和本文相关的内容,其他配置信息做了清理 1、业务服务的.gitlab-ci.yml配置如下 variables: REGISTRY: xxx.docker.com...DEPLOY_VERSION value: "$DEPLOY_VERSION" 总结 貌似也没啥内容总结,就贴个gitlab ci内置的variables文档作为总结吧

1.4K30

Docker高级篇笔记(八)DockerFile详细学习

再基于刚提交的镜像运行一个新容器 ·(5)执行dockerfile中的下一条指令直到所有指令都执行完成 DockerFile常用保留字指令 FROM ·基础镜像,当前新镜像是基于哪个镜像的,指定一个已经存在的镜像作为模板...当前容器对外暴露出的端口 WORKDIR ·指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点 USER ·指定该镜像以什么样的用户去执行,如果都不指定,默认是root ENV ·用来在构建镜像过程中设置环境变量...ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用, 这就如同在命令前面指定了环境变量前缀一样; 也可以在其它指令中直接使用这些环境变量, 比如:WORKDIR...指令指定的程序 ·命令格式和案例说明 ENTRYPOINT可以和CMD一起用,一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 参。...当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成 案例如下:假设已通过 Dockerfile

62120

聊聊如何将gitlab ci的环境变量透传给k8s deployment.yaml

jenkins,没接触过过gitlab的cicd,朋友他对技术也是比较有追求,他发现这家公司k8s的yaml文件,很多字段其实可以抽出来,配合cicd动态传入,而不是把那些字段直接写死在yaml文件,比如docker...gitlab来做cicd 可以查看官网链接,如下 https://docs.gitlab.com/ee/ci/README.html 02 envsubst命令了解 a、envsubst的作用 这个命令可以把环境变量递给文件...,并通过管道,把deployment.yml的内容传递给kubectl 如何将gitlab ci的环境变量透传给k8s deployment.yaml 示例: 注: 朋友的公司采用业务服务和部署服务.gitlab-ci.yml...gitlab-ci.yml通过触发部署服务的触发器进行部署,示例只列和本文相关的内容,其他配置信息做了清理 01 业务服务的.gitlab-ci.yml配置如下 variables: REGISTRY: xxx.docker.com...name: DEPLOY_VERSION value: "$DEPLOY_VERSION" 03 总结 貌似也没啥内容总结,就贴个gitlab ci内置的variables文档作为总结吧

2.1K30
领券