Проблема с tar во время загрузки webrtc внутри Docker ubuntu

Я пытаюсь создать webrtc, используя действия github с контейнером Docker Ubuntu. И получать кучу tar: ./usr/lib/i386-linux-gnu/libicui18n.so.67.1: Cannot change ownership to uid 376730, gid 89939: Invalid argument лайков сообщений во время процесса выборки webrtc. Я нашел возможное решение с параметром --no-same-owner tar, но не могу понять, как заставить tar использовать его для каждого файла .tar, который webrtc fetch хочет обработать.

Рабочий процесс:

name: Build

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: Linux
            container: ghcr.io/<company>/<name>
      ...        
    name: ${{matrix.os}}, ${{matrix.arch}}    
    runs-on: [ "self-hosted", ...]
    container: ${{ matrix.container }}
    
    steps:
      - uses: actions/checkout@v3

      - name: Build WebRTC
        if: ${{matrix.os == 'Linux'}}
        shell: bash
        run: |
          git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git depot_tools
          export PATH=$(pwd)/depot_tools:$PATH
          mkdir webrtc_build
          cd webrtc_build
          fetch --nohooks webrtc && gclient sync
    ...

И Докерфайл:

FROM ubuntu:22.04

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -y sudo clang build-essential cmake git libssl-dev curl python3 && \
    ...
    rm -rf /var/lib/apt/lists/*

Рабочий процесс публикации Docker:

on:   
  ...
jobs:
  push:
    runs-on: [self-hosted, ...]

    steps:
      - uses: actions/checkout@v2

      - name: Build image
        run: docker build . --file Dockerfile --tag <name> --label "runnumber=${GITHUB_RUN_ID}"

  ....     

      - name: Push image
        run: |
          docker tag <name> ghcr.io/<company>/<name>
          docker push ghcr.io/<company>/<name>

Пожалуйста, включите свой минимальный рабочий процесс в свой вопрос, чтобы воспроизвести это. Спасибо!

Azeem 13.04.2023 07:31

Спасибо! Вы пытались построить его без контейнера?

Azeem 13.04.2023 08:37

@Азим. Да, это работает нормально. Но, к сожалению, я должен использовать контейнер

lfk 13.04.2023 09:25

Верно. Это пользовательский Dockerfile, который вы используете? Где он используется в вашем рабочем процессе?

Azeem 13.04.2023 09:34

@Azeem, есть еще один рабочий процесс, который публикует образ докера в github. И использую его по ссылке в разделе container основного рабочего процесса. Я также добавил это к основному вопросу

lfk 13.04.2023 09:39

Понятно. Вы пытались добавить USER root в Dockerfile?

Azeem 13.04.2023 09:52

@Azeem, это уже корень. id дает uid=0(root) gid=0(root) groups=0(root)

lfk 13.04.2023 10:10

Верно. По умолчанию должно быть, если не указано иное. Я задавался вопросом о uid 376730, gid 89939 и подумал, может быть, это связано с этим.

Azeem 13.04.2023 10:55

@Azeem, я думаю, это связано с этим ... Я пытался создать и установить пользователя в файле Docker, но это приводит к ошибкам после запуска рабочего процесса gh. Я также пытался установить пользователя на шаге Build WebRTC (su user, который не проходит без ошибок), но id все равно дает uid=0(root).... С другой стороны, я загрузил этот образ на свой ноутбук, запустил его, сменил пользователя, и он работает локально.

lfk 13.04.2023 11:02

Итак, настройка пользователя вручную работает нормально?

Azeem 13.04.2023 11:22

Также смотрите jobs.<job_id>.container.options и --user / -u.

Azeem 13.04.2023 11:23

@Azeem, «Итак, настройка пользователя вручную работает нормально?» - Я имею в виду, что это работает только локально. Как правило, выборка webrtc также отлично работает локально. Но это не работает для действий gh.

lfk 13.04.2023 11:37
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
12
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Исправлено добавлением переменной окружения TAR_OPTIONS:

    env:
      TAR_OPTIONS: --no-same-owner     

Другие вопросы по теме