[LINUX] Créer un fichier deb avec Docker

Utilisez 3 fichiers

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

#Cliquez ici pour le traitement à effectuer avant de créer le conteneur Docker
WORKDIR=$(cd $(dirname $0); pwd)
NAME=base-files-11ubuntu4
#Décrit jusqu'à présent

#Création du nom de l'image_deb est réécrit par le fichier deb à construire
#Exemple: 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"
#Décrivez le nom du répertoire à construire
ARG UID=65587
#Avec une grande valeur pour ne pas entrer en conflit
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
#Installer les dépendances

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
#Créer un utilisateur que sudo peut utiliser sans entrer de mot de passe

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
#Supprimer l'exécution en dehors du conteneur Docker

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

#Décrivez le processus avant la construction

debuild -us -uc
#Construire

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
#Tar ce que tu as construit.Compressé en zst, dans un répertoire partagé avec l'hôte avec le paquet source

Recommended Posts

Créer un fichier deb avec Docker
[Linux] Créer un environnement Jenkins avec Docker
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement de développement avec Poetry Django Docker Pycharm
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Créer un environnement go à l'aide de Docker
Construire un environnement Mysql + Python avec docker
Déployer l'application Django avec Docker
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Créer une application Web avec Django
Créer une application Todo avec Django ① Créer un environnement avec Docker
Créer un téléchargeur de fichiers avec Django
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Créez facilement un environnement de développement avec Laragon
Créer un environnement Jupyter Lab (Python) avec Docker
Configurer un serveur Samba avec Docker
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Créez un environnement d'API rapide avec docker-compose
Obtenez un environnement local pour DynamoDB avec Docker
Raclons un site dynamique avec Docker
Créer un gros fichier texte avec shellscript
Créer une machine virtuelle avec un fichier YAML (KVM)
Créer un fichier deb à partir d'un package python
Exécutez une application Web Python avec Docker
Créez un environnement virtuel pour python avec pyenv
Créer un service Web avec Docker + Flask
Lire le fichier de données de caractères avec numpy
Construisez une machine d'acquisition de capture avec Selenium
Créez un environnement Python moderne avec Neovim
Construire une bibliothèque statique (.a) avec waf
Construire un environnement de NGINX + NGINX Unit + MySQL avec Docker
J'ai créé un fichier de configuration avec Python
Construisez un environnement Python + bouteille + MySQL avec Docker sur RaspberryPi3! [Construction facile]
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Créer un serveur local avec une commande sur une seule ligne [Mac]
Créez un environnement LAMP sur votre Docker local
Comment lire un fichier CSV avec Python 2/3
Créer un environnement de développement de langage C avec un conteneur
Créez un environnement WardPress sur AWS avec Pulumi
Parler en japonais avec gTTS (lire un fichier texte)
Créez un environnement python avec ansible sur centos6
Créer un fichier PDF avec une taille de page aléatoire
Démarrez un serveur Web Python simple avec Docker
Créer un environnement de construction python3 avec Sublime Text3
Créez un système de synthèse bon marché avec des composants AWS
Créez un environnement Django avec Vagrant en 5 minutes
[Memo] Créez un environnement virtuel avec Pyenv + anaconda
Créez un environnement virtuel avec pyenv et venv
Créer un environnement de développement Django à l'aide de Doker Toolbox
Enregistrer l'objet dans un fichier avec pickle
Créer un fichier au format Photoshop (.psd) avec python
Construire un environnement Python avec OSX Elcapitan
Créez rapidement un environnement Python Django avec IntelliJ
Lire ligne par ligne à partir d'un fichier avec Python
Je veux écrire dans un fichier avec Python