コンテナ内に abc.deb ファイルをインストールする必要がある継続的な統合パイプラインを起動しようとしています。
Debian/制御ファイルには以下が含まれます:
Depends: ${python3:Depends}, ${misc:Depends}, python3-webpy, systemd
debian/rules ファイルには以下が含まれます (以下には関連部分のみが表示されます)。
%:
dh $@ --with=python3,systemd
override_dh_systemd_start:
dh_systemd_start -p<application>
override_dh_installinit:
dh_systemd_start
私のDockerfileは次のようになります。
FROM <relevant base image>
COPY results/*.deb /packages/
RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \
apt-get install -y --no-install-recommends --auto-remove \
dumb-init \
procps \
/packages/*.deb && \
apt-get autoremove -y && \
apt-get autoclean -y && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/apt
CMD tail -f /dev/null
docker内でdocker execを実行し、ps auxを実行すると、次のような結果が得られます。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2388 756 ? Ss 11:51 0:00 /bin/sh -c tail -f /dev/null
systemdをPID 1に設定するには?愚か者は初期化について一度言いました!
いくつかの記事を見ましたが、不可能であり、同じ内容を確認する必要があります。良い点は次のとおりです(いくつかの例)。
https://lwn.net/Articles/676831/
https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/
ベストアンサー1
〜のように通常の再起動systemdベースイメージからビルドできるというコメントがコメントに記載されています。例えば、centosシステムシステム。ただし、Dockerコンテナ内でsystemdを使用することはお勧めできません。私のものを見て関連質問。
依存関係に対してのみ体系化が必要な場合、より良いアプローチは次のとおりです。deb 依存関係を無視。