मेरे डॉकर प्रोजेक्ट के रेपो में, मेरे पास एक संस्करण फ़ाइल है जिसमें संस्करण संख्या से अधिक कुछ नहीं है।

1.2.3

ट्रैविस में, मैं फ़ाइल को एक पर्यावरण चर में cat करने में सक्षम हूं, और डॉकर हब को धक्का देने से पहले मेरे निर्माण को टैग करने के लिए इसका उपयोग करता हूं।

---
env:
  global:
    - USER=username
    - REPO=my_great_project
    - VERSION=$(cat VERSION)

गिटहब क्रियाओं में इसके बराबर क्या है? मैंने यह कोशिश की, लेकिन यह काम नहीं कर रहा है।

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} .
1
Logan M. 6 नवम्बर 2020, 23:35

1 उत्तर

सबसे बढ़िया उत्तर

मैं सड़क से नीचे चला गया कि बेंजामिन डब्ल्यू. मेरे पर्यावरण बनाम बस में 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
1
Logan M. 7 नवम्बर 2020, 04:17