<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>41371</bug_id>
          
          <creation_ts>2021-11-17 17:00:15 +0300</creation_ts>
          <short_desc>Сборка docker (или OCI) образов</short_desc>
          <delta_ts>2021-11-29 00:20:06 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Infrastructure</classification>
          <product>Infrastructure</product>
          <component>girar</component>
          <version>unspecified</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shabalin">shaba</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>rider</cc>
          
          <qa_contact name="Andrey Cherepanov">cas</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204993</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2021-11-17 17:00:15 +0300</bug_when>
    <thetext>Было бы здорово организовать сборку docker образов.
- все необходимое для сборки размещать в git.altlinux.org/people/$USER/containers/foo
- собирать образ на основе Dockerfile. Хотя бы для архитектур x86_64 и aarch64.
  существующие утилиты для сборки образов:
  - BuildKit https://github.com/moby/buildkit
  - buildah https://github.com/containers/buildah
  - Docker
- Выгружать полученный образ на какой-либо реестр образов(hub.docker.com, quay.io). Предлагаю организовать свой сервер реестра образов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205215</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-23 15:20:57 +0300</bug_when>
    <thetext>Для того, чтобы сборочница могла собирать docker-образы на основе Dockerfile, необходимо, чтобы используемый для сборки инструмент мог работать внутри hasher&apos;а и, как следствие, быть непривилегированным и не требовать unprivileged userns.

Поскольку ни один из существующих инструментов не обладает таким свойством, придётся либо разработать такой инструмент, либо разработать другую сборочницу, которая не будет основана на безопасной воспроизводимой сборке с помощью hasher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205216</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-11-23 15:22:24 +0300</bug_when>
    <thetext>Или, как вариант, можно использовать vm-run, если научиться забирать из него результаты сборки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205218</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-23 15:28:53 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #2)
&gt; Или, как вариант, можно использовать vm-run, если научиться забирать из него
&gt; результаты сборки.

И заранее ограничить множество поддерживаемых архитектур теми, где работает vm-run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205219</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-11-23 15:35:55 +0300</bug_when>
    <thetext>да, конечно. Но это, возможно, будет проще чем переписывать hasher или инструменты сборки образов.

А можно каким-то образом репозиторий с пакетами сделать доступным внутри hasher ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205221</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-23 15:50:48 +0300</bug_when>
    <thetext>(In reply to Anton Farygin from comment #4)
&gt; А можно каким-то образом репозиторий с пакетами сделать доступным внутри
&gt; hasher ?

Во время обычной сборки пакетов вряд ли, а вообще да, поскольку hasher поддерживает монтирование.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205231</commentid>
    <comment_count>6</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-11-23 17:35:52 +0300</bug_when>
    <thetext>если во время сборки docker образов получится смонтировать внутрь hasher используемый репозиторий, то задача выглядит решаемой через vm-run. Понятно, что количество платформ будет ограничено наличием /dev/kvm, но я подозреваю что те платформы, на которых /dev/kvm нету, не очень нужно поддерживать в docker образах.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205282</commentid>
    <comment_count>7</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2021-11-25 09:28:16 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #3)
&gt; (In reply to Anton Farygin from comment #2)
&gt; &gt; Или, как вариант, можно использовать vm-run, если научиться забирать из него
&gt; &gt; результаты сборки.
&gt; 
&gt; И заранее ограничить множество поддерживаемых архитектур теми, где работает
&gt; vm-run.

Что мы теряем? 
e2k до выхода e2kv6
riscv64 пока,  хотя движение есть
mipsel мертв

Что ещё?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205283</commentid>
    <comment_count>8</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2021-11-25 09:32:48 +0300</bug_when>
    <thetext>Эти &quot;теряемые&quot; архитектуры отстутствуют на сборочнице, поэтому мы их не теряем до тех пор, пока они не будут интегрированы в основной girar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205301</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-11-25 13:44:28 +0300</bug_when>
    <thetext>(In reply to AEN from comment #7)
&gt; (Ответ для Dmitry V. Levin на комментарий #3)
&gt; &gt; (In reply to Anton Farygin from comment #2)
&gt; &gt; &gt; Или, как вариант, можно использовать vm-run, если научиться забирать из него
&gt; &gt; &gt; результаты сборки.
&gt; &gt; 
&gt; &gt; И заранее ограничить множество поддерживаемых архитектур теми, где работает
&gt; &gt; vm-run.
&gt; 
&gt; Что мы теряем? 
&gt; e2k до выхода e2kv6
&gt; riscv64 пока,  хотя движение есть
&gt; mipsel мертв
&gt; 
&gt; Что ещё?

armv7, но, видимо, 32-битные архитектуры не интересны.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205302</commentid>
    <comment_count>10</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2021-11-25 13:47:35 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #9)
&gt; (In reply to AEN from comment #7)
&gt; &gt; (Ответ для Dmitry V. Levin на комментарий #3)
&gt; &gt; &gt; (In reply to Anton Farygin from comment #2)
&gt; &gt; &gt; &gt; Или, как вариант, можно использовать vm-run, если научиться забирать из него
&gt; &gt; &gt; &gt; результаты сборки.
&gt; &gt; &gt; 
&gt; &gt; &gt; И заранее ограничить множество поддерживаемых архитектур теми, где работает
&gt; &gt; &gt; vm-run.
&gt; &gt; 
&gt; &gt; Что мы теряем? 
&gt; &gt; e2k до выхода e2kv6
&gt; &gt; riscv64 пока,  хотя движение есть
&gt; &gt; mipsel мертв
&gt; &gt; 
&gt; &gt; Что ещё?
&gt; 
&gt; armv7, но, видимо, 32-битные архитектуры не интересны.

Насколько я понимаю, зависит от железки. То есть решается вне общей процедуры.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205398</commentid>
    <comment_count>11</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2021-11-29 00:20:06 +0300</bug_when>
    <thetext>Дима, Глеб, делаем?
Ключевой элемент плана 2022.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>