Log*_* M. 10 docker github-actions
在我的 Docker 项目的存储库中,我有一个 VERSION 文件,其中仅包含版本号。
1.2.3
Run Code Online (Sandbox Code Playgroud)
在 Travis 中,我可以将cat文件保存到环境变量中,并在推送到 Docker Hub 之前使用它来标记我的构建。
---
env:
global:
- USER=username
- REPO=my_great_project
- VERSION=$(cat VERSION)
Run Code Online (Sandbox Code Playgroud)
与 GitHub Actions 中的等效项是什么?我尝试过这个,但它不起作用。
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
...
...
...
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个,但不起作用。
- name: Build the image
run: |
echo "VERSION=$(cat ./VERSION)" >> $GITHUB_ENV
docker build --file ${BASE}/Dockerfile --tag ${USER}/${REPO}:${VERSION} .
Run Code Online (Sandbox Code Playgroud)
Log*_* M. 17
我沿着Benjamin W.所说的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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12544 次 |
| 最近记录: |