Docker GitHub操作:如何将版本文件的内容获取到环境变量中?
在Docker项目的repo中,我有一个版本文件,其中只包含版本号Docker GitHub操作:如何将版本文件的内容获取到环境变量中?,docker,github-actions,Docker,Github Actions,在Docker项目的repo中,我有一个版本文件,其中只包含版本号 1.2.3 在Travis中,我能够cat将文件转换为环境变量,并在推送到Docker Hub之前使用它标记我的构建 --- env: global: - USER=username - REPO=my_great_project - VERSION=$(cat VERSION) GitHub操作中的等价物是什么?我试过了,但没用 name: Test on: ... ... env:
1.2.3
在Travis中,我能够cat
将文件转换为环境变量,并在推送到Docker Hub之前使用它标记我的构建
---
env:
global:
- USER=username
- REPO=my_great_project
- VERSION=$(cat VERSION)
GitHub操作中的等价物是什么?我试过了,但没用
name: Test
on:
...
...
env:
USER: username
REPO: my_great_project
jobs:
build_ubuntu:
name: Build Ubuntu
runs-on: ubuntu-latest
env:
BASE: ubuntu
steps:
- name: Check out the codebase
uses: actions/checkout@v2
- name: Build the image
run: |
VERSION=$(cat VERSION)
docker build --file ${BASE}/Dockerfile --tag ${USER}/${REPO}:${VERSION} .
build_alpine:
name: Build Alpine
runs-on: ubuntu-latest
env:
BASE: alpine
...
...
...
我也试过这个,但不起作用
- name: Build the image
run: |
echo "VERSION=$(cat ./VERSION)" >> $GITHUB_ENV
docker build --file ${BASE}/Dockerfile --tag ${USER}/${REPO}:${VERSION} .
我一直在谈论在我的环境中使用版本
,而不仅仅是在那个特定的步骤中
这对我来说很有用,一步设置变量,然后在单独的步骤中使用它
- name: Set variables
run: |
VER=$(cat VERSION)
echo "VERSION=$VER" >> $GITHUB_ENV
- name: Build Docker Image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ env.BASE_DIR }}/Dockerfile
load: true
tags: |
${{ env.USER }}/${{ env.REPO }}:${{ env.VERSION }}
${{ env.USER }}/${{ env.REPO }}:latest
您是需要在环境中使用
VERSION
,还是只需要它作为docker build
命令中VERSION
变量的值?我只需要它来使用docker build
、docker tag
和docker push
如果您在环境中不需要它,可以使用VERSION=$(<版本)
然后在相同的运行步骤中使用$VERSION
。基本上,你第一次尝试时做了什么。这怎么不起作用?呃,我是个白痴。这是另一个步骤,在我运行我所拥有的时失败了。似乎我确实需要在环境中使用VERSION
。我尝试在多个步骤中使用它,并且我不想每次都设置它。是否有方法为所有步骤添加它?