Eige­ne Images in Por­tai­ner-ce nutzen

Ich hat­te das Pro­blem, dass die bcmath-Erwei­te­rung nicht im php-apa­che-mys­q­li-Image ent­hal­ten war. Du kannst sie zwar auch noch nach­träg­lich auf der docker-Shell des Con­tai­ners instal­lie­ren, musst das dann aber spä­tes­ten bei jedem Rebuild des Con­tai­ners wiederholen. 

Bes­ser wäre es, ein eige­nes Image mit docker-com­po­se anzu­le­gen, das dann Grund­la­ge des Con­tai­ners wird.

Die Com­mu­ni­ty-Edi­ti­on von Por­tai­ner (por­tai­ner-ce) hat aber unter ande­rem die Ein­schrän­kung, dass bei der Erzeu­gung eines Con­tai­ners kei­ne loka­len Images benutzt wer­den kön­nen. Das ist der Busí­ness-Edi­ti­on vorbehalten.

Um das zu umge­hen, kannst Du eige­nes, loka­les Repo­si­to­ry benutz­ten. Das ist über­ra­schend ein­fach mit den Por­tai­ner-Bord­mit­teln erledigt.

Als ers­tes legst Du in der loka­len Umge­bung ein Repo­si­to­ry an. Kli­cke unter Host -> Registry auf Add Registry, selek­tie­re Custom Registry, ver­ge­be einen Namen (belie­big) und gebe die URL ein, z.B. localhost:5000. Mit einem Klick auf Add Registry ist das Image-Archiv schon einsatzbereit.

Ein Image erzeugst Du unter dem Menü­punkt Images mit dem Knopf Build a new Image. Ver­ge­be einen Namen und tra­ge im Web-Edi­tor-Bereich die Anwei­sun­gen ana­log zum Docker­file ein, also z.B.

FROM php-apache-mysqli:latest

RUN docker-php-ext-install bcmath

Kli­cke auf Build the Image und war­te den Build-Vor­gang ab, der eini­ge Minu­ten dau­ern kann. 

Jetzt musst Du nur noch das Image für dei­ne loka­le Regis­try tag­gen. Kli­cke dazu in der Image-Lis­te auf die Id dei­nes Images, wäh­le unter Registry dei­ne loka­le Regis­try aus, ver­gib eine ein­deu­ti­ge Bezeich­nung, z.B. php-apache-mysqli-with-bcmath, und kli­cke auf Tag.

Wenn Du jetzt einen Con­tai­ner erstellst, kannst Du statt des Docker Hub dei­ne loka­le Regis­try aus­wäh­len und fin­dest dein Cus­tom Image unter dem oben ver­ge­be­nen Tag.

Veröffentlicht am
Kategorisiert in Allgemein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

13 + zwölf =