• Docker
  • Dockerfile Alpine - Equivalent dpkg

Bonjour à tous

Je m'essaye à transposer l'image pms docker initialement ubuntu vers alpine. Sauf erreur de ma part la commande dpkg ne fonctionne pas sur alpine, Y a t'il un équivalent à cette commande ?

dpkg -i plexmediaserver.deb

Autre question je souhaite également installer python avec alpine et j'ai lu sur le net que cela perdait tout son intérêt par rapport au coté "light" de l'image

Merci de vos reponses

Salut,

Y'a pas d'équivalent à dpkg sur alpine, dpkg étant l'outils pour gérer le format deb, qui est le format de paquet de debian.

Pour alpine, il te faudra ar et glibc (a installer à la main) en plus, il faudra décompresser le .deb, copier le contenu tu data.tar.gz dans le /usr/...

Si tu souhaite un exemple, tu as cette image de dispo : https://github.com/oskarirauta/alpine-plex

    Merci pour ta réponse, effectivement il y a une différence de taille entre les deux images

    plexinc/pms-docker              plexpass            6f10f5aaf4b6        8 days ago          171MB
    oskarirauta/alpine-plex         plexpass            c245a40fa834        15 months ago       71MB

    Hormis la taille qu'elle est le vrai intérêt de alpine par rapport à ubuntu ou autre ? Je lis certaines choses sur le net concernant la sécurité mais j'aurai aime avoir ton propre avis sur la question notamment parce que je vois sur ton git que quasi toutes tes images sont en alpine.

    Alors perso c'est surtout pour la taille des images.
    Niveau sécurité, je vois pas de vrai point, a part peut être le fait que le système a vraiment le minimum, donc on réduit la surface d'attaque, et peut être parce que alpine utilise musl, et non glibc, donc tout ce qui est compilé par glibc (dont rootkit, virus etc ...), ne sera pas compatible avec alpine.

      xataz Merci pour ton avis, du coup pour plex et par confort je vais rester sur ubuntu et pour les autres images je prendrais les tiennes 😉

      Si tu as un moment pour me donner ton avis sur mon Dockerfile et éventuellement me donner des conseils pour améliorer l'ensemble bien que cela fonctionne parfaitement.
      https://github.com/laster13/plexdrive-rclone

        Salut, merci pour ton Docker qui pourrait me faire gagner du temps à l'avenir. Ton montage rclone correspond au chiffré ou déchiffré ?

          laster13 J'ai regarder vite fait, sur le fonctionnement je ne peux rien dire, je ne sais pas trop ce que cela fait (de ce que j'ai compris, c'est google-drive utiliser via rclone et plex).
          Niveau propreté, le Dockerfile est clean, pas de soucis particulier.

            Je ne suis pas un expert, mais si je peux me permettre j'ai quelque remarque sur ton dockerfile.

            Tu as certain layer inutile.
            Tu peux fusionner la copyright des scripts :
            COPY scripts/* /etc/scripts/

            Cette ligne est inutile :

            RUN rm -rf /var/cache/apk/** \
             && rm -rf /tmp/**

            Elle va créer une couche supplémentaire pour supprimer des fichiers, mais ces fichiers seront encore présent dans les couches précédentes

            Je te conseille de déplacer les copy tout a la fin, et de réunir sur la même couche : install apk + useradd + clean tmp.

            (Je suis avec mon téléphone je ne peux pas te montrer le résultat final)

              laster13 effectivement tu as raison 😁...
              Je n'ai pas fait attention.
              Et je dois dire que le tiens est très bien, je ne trouve rien a redire 😋

              laster13 Oui effectivement (j'avais regardé rapidement en diagonal), le déplacement du COPY à la fin peut être mieux, c'est ce que tu risques de modifier le plus souvent normalement, cela évitera de rebuild tout en cas de simple modification.

              Autrement, pourquoi ne pas mettre directement ton startup.sh et ton crontab dans le root ? (que je préfère appelé rootfs perso, question d'organisation), comme ça tu auras qu'un seul COPY, au lieu de 3 (tu gagnes 2 layers), et tu peux en regagner un autre en regroupant RUN chmod +x /start.shet RUN touch /var/log/cron.log.

              L'ajout de quelques LABEL peut être aussi pas mal, genre ajouter les versions des applications utilisé, le mainteneur etc ...

                xataz Merci pour tes conseils, je vais essayer de modifier comme tu me dis

                J'ai rajouté Plex_dupefinder et préparé une video pour montrer comment ca fonctionne. Il y a du travail pour les fichiers config de Plex_autoscan, unionfs_cleaner mais si il y a de la demande je pourrai faire un tuto.

                asciicast

                Par ailleurs on pourrait inciter les membres à utiliser asciinema de manière à faciliter les échanges. Qu'en pensez vous ?
                https://asciinema.org/

                Edit: xataz J'ai tout fait tout ce que tu m'as dit 😋 Effectivement ca fait plus propre, j'ai gagné quelques layers, par contre la taille de l'image n'a pas changé, je pensais qu'elle serait reduite !

                Ce qu'il ya est que comme j'ai déplacé COPY root/ / à la fin j'ai aussi du déplacer /plexdrive-install.sh à la fin également et comme plexdrive nécessite wget ben j'ai pas pu le désinstaller dans # Remove dependencies, peut être pour ca que j'ai pas gagné de place.. mhum je sais pas si je suis bien clair 🙃

                  laster13 Malheureusement, y'a pas de solution miracle pour réduire une image.
                  Tu as peux être possibilité de gagner quelques Mo en supprimant les .git des repos github, mais ce sera pas foufou non plus.

                  Elle fait combien ton image en réel actuellement ?

                    L'autre solution pour réduire la taille c'est d'utiliser la même image de base, comme ça tu ne mettras à jour Ubuntu qu'une seule fois 😁

                      Répondre…