LINUX.ORG.RU

Проблема в Docker файле, github actions

 , ,


0

1

Господа, подскажите пожалуйста - почему у меня проект в github actions собирается нормально, но вывода(артефакта) нет. Суть всех манипуляций следующая - Docker файл использую качестве контейнера, разворачиваю в github actions дистрибутив debian с утилитой iproute2. В контейнере выполняется команда /bin/ss -tulpn, которая получает список открытых портов - результат записывается в файл. Файл выкладывается в примонтированный к контейнеру каталог и используется, как артефакт сборки (упаковать в tar или deb). На выходе: workflow-файл, Dockerfile, успешно прошедший процесс actions, артефакт, в одном из форматов.

build.yml

name: Build and Package

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

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

    - name: Build and run Docker container
      run: |
        docker build -t mycontainer .
        docker run -v $(pwd)/output:/output mycontainer
        
    - name: Change permissions
      run: |
        sudo chmod -R 777 output/
        
    - name: Create artifact
      run: |
        cd output
        tar -cvzf result.tar.gz result.txt
        mv result.txt result.deb
      if: always()

    - name: Upload artifact
      uses: actions/upload-artifact@v2
      with:
        name: result-artifact
        path: output/result.tar.gz

docker.yml

name: Example Workflow

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

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

    - name: Build and run Docker container
      run: |
        docker build -t mycontainer .
        docker run -v $(pwd)/output:/output mycontainer

docker файл

 
FROM debian

RUN apt-get update && apt-get install -y iproute2

RUN mkdir /output

CMD /bin/ss -tulpn > /output/result.txt


Последнее исправление: that-same (всего исправлений: 2)
Ответ на: комментарий от that-same

Можете подсказать, как это корректнее добавить?

Если «это» это if-no-files-found: error, то см. мануал

https://github.com/actions/upload-artifact#customization-if-no-files-are-found

В логе,вроде,нет sh tar -cvzf

В логе должен быть шаг сборки Create artifact, а в нём вывод tar. Если сборка, конечно, не фейлится на одном из предыдущих шагов.

annulen ★★★★★
()
Ответ на: комментарий от that-same

Когда я пользовался этой дрянью, там был совершенно неюзабельный веб-интерфейс, и все логи приходилось открывать в plain text, чтобы что-то понять. Возможно, так и сейчас.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Я добавил в build.yml if-no-files-found: error

      uses: actions/upload-artifact@v2
      with:
        name: result-artifact
        path: output/result.tar.gz
        if-no-files-found: error```
В итоге сборка идет норм, но результата никакого(
that-same
() автор топика