[LINUX] Erstellen Sie eine Deb-Datei mit Docker

Verwenden Sie 3 Dateien

build.sh


#!/bin/bash
set -e
if [[ $UID == 0 ]]; then
    echo "You must not run this as root." 1>&2
    exit 1
fi

if !(type docker >/dev/null); then
    echo "Docker is not installing on this machine." 1>&2
    exit 1
fi

#Klicken Sie hier, um die Verarbeitung durchzuführen, bevor Sie den Docker-Container erstellen
WORKDIR=$(cd $(dirname $0); pwd)
NAME=base-files-11ubuntu4
#Bisher beschrieben

#Bildname erstellen_deb wird von der zu erstellenden deb-Datei neu geschrieben
#Beispiel: build_base-files
sudo docker build -t build_deb ${WORKDIR}
sudo docker run -e NAME=${NAME} -e UGID="${UID}:$(id -u)" -v ${WORKDIR}/out:/deb -it build_deb

Dockerfile

FROM ubuntu:20.04
ARG NAME="base-files-11ubuntu4"
#Beschreiben Sie den Namen des zu erstellenden Verzeichnisses
ARG UID=65587
#Mit einem großen Wert, um keine Konflikte zu verursachen
RUN sed -i"" -e 's%http://[^ ]\+%mirror://mirrors.ubuntu.com/mirrors.txt%g' /etc/apt/sources.list \
&& apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y --no-install-recommends build-essential devscripts zstd gawk libc6 libcrypt1 debhelper dh-systemd apt-utils sudo \
&& rm -rf /tmp/* /var/tmp/* \
&& apt-get clean
#Abhängigkeiten installieren

RUN echo "root:root" | chpasswd && \
    adduser --disabled-password --uid ${UID} --gecos "" docker && \
    echo "docker:docker" | chpasswd && \
    echo "%docker    ALL=(ALL)   NOPASSWD:    ALL" >> /etc/sudoers.d/docker && \
    chmod 0440 /etc/sudoers.d/docker
#Erstellen eines Benutzers, den sudo ohne Eingabe eines Passworts verwenden kann

RUN mkdir -p /debuild/build /deb 
ADD ./${NAME} /debuild/build/${NAME}
ADD ./debuild.sh /debuild/debuild.sh
RUN chmod +x /debuild/debuild.sh \
&& chown -R docker:docker /debuild
USER ${UID}
WORKDIR /debuild
CMD ["./debuild.sh"]

debuild.sh


#!/bin/bash -e
if [ $UID != 65587 ]; then
    echo "You have to run this on Docker" 1>&2
    exit 1
fi
#Unterdrücken Sie das Ausführen außerhalb des Docker-Containers

export EDITOR=vim
cd /debuild/build/$NAME

#Beschreiben Sie den Prozess vor dem Erstellen

debuild -us -uc
#Bauen

cd ..
tar cf ${BASE_FILES}serene${VERSION:5}.tar \
base-files-dbgsym_${BASE_FILES:11}serene${VERSION:5}_amd64.ddeb \
base-files_${BASE_FILES:11}serene${VERSION:5}.dsc \
base-files_${BASE_FILES:11}serene${VERSION:5}_amd64.build \
base-files_${BASE_FILES:11}serene${VERSION:5}_amd64.buildinfo \
base-files_${BASE_FILES:11}serene${VERSION:5}_amd64.changes \
base-files_${BASE_FILES:11}serene${VERSION:5}_amd64.deb \
lsb-release-udeb_${BASE_FILES:11}serene${VERSION:5}_all.udeb
zstd ${BASE_FILES}serene${VERSION:5}.tar
sudo mv -f *.xz /deb 2>/dev/null
sudo mv -f *.zst /deb 2>/dev/null
sudo chown -R ${H_UGID} /deb 2>/dev/null
#Teer was du gebaut hast.In zst komprimiert, in ein freigegebenes Verzeichnis mit Host mit Quellpaket

Recommended Posts

Erstellen Sie eine Deb-Datei mit Docker
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
Stellen Sie die Django-Anwendung mit Docker bereit
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie eine Webanwendung mit Django
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Erstellen Sie mit Django einen Datei-Uploader
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen Sie mit Docker eine Jupyter Lab (Python) -Umgebung
Richten Sie mit Docker einen Samba-Server ein
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Lassen Sie uns mit Docker eine dynamische Site kratzen
Erstellen Sie eine große Textdatei mit Shellscript
VM mit YAML-Datei (KVM) erstellen
Erstellen Sie eine Deb-Datei aus einem Python-Paket
Führen Sie eine Python-Webanwendung mit Docker aus
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie einen Webdienst mit Docker + Flask
Zeichendatendatei mit numpy lesen
Erstellen Sie mit Selenium eine Capture-Erfassungsmaschine
Erstellen Sie mit Neovim eine moderne Python-Umgebung
Erstellen Sie zusammen mit waf eine statische Bibliothek (.a)
Erstellen Sie mit Docker eine Umgebung aus NGINX + NGINX Unit + MySQL
Ich habe mit Python eine Einstellungsdatei erstellt
Erstellen Sie mit Docker auf RaspberryPi3 eine Python + Flasche + MySQL-Umgebung! [Einfache Konstruktion]
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
Erstellen Sie einen lokalen Server mit einem einzeiligen Befehl [Mac]
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Lesen einer CSV-Datei mit Python 2/3
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Mit gTTS auf Japanisch sprechen (Textdatei lesen)
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie eine PDF-Datei mit einer zufälligen Seitengröße
Starten Sie mit Docker einen einfachen Python-Webserver
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie ein billiges Zusammenfassungssystem mit AWS-Komponenten
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Speichern Sie das Objekt in einer Datei mit pickle
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Erstellen einer Python-Umgebung mit OSX Elcapitan
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Lesen Sie mit Python Zeile für Zeile aus der Datei
Ich möchte mit Python in eine Datei schreiben