Docker GitHub操作:如何将版本文件的内容获取到环境变量中?

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:

在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:
  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
。我尝试在多个步骤中使用它,并且我不想每次都设置它。是否有方法为所有步骤添加它?