Zenika-Training / zenika-formation-framework

Tools to build and present our training material
8 stars 25 forks source link

Baser l'image Docker sur Alpine #122

Closed hgwood closed 7 years ago

hgwood commented 8 years ago

Cf https://hub.docker.com/r/zenika/alpine-node/

zigarn commented 7 years ago
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
node                         7.2                 89cd8193c9a1        6 days ago          655.5 MB
node                         7.2-alpine          164dad592f49        36 hours ago        55.3 MB
zenika/alpine-node           latest              168eace2436b        4 months ago        235.8 MB
zenika/formation-framework   v2.0.1              e0a90f5549af        13 hours ago        814.3 MB
zenika/formation-framework   alpine              b7b446444ee1        33 seconds ago      212.3 MB
hgwood commented 7 years ago

Pourquoi zenika/alpine-node est-elle si grosse comparée à node:7.2-alpine ?

jlandure commented 7 years ago

cf https://hub.docker.com/r/zenika/alpine-node/ Layers:

Après ils ont fait évoluer la officielle node:7.2-alpine donc peut-être que la zenika/alpine-node n'est plus intéressante. A checker 👍

hgwood commented 7 years ago

OK. Je ferme cette issue puisque https://github.com/Zenika/zenika-formation-framework/pull/136

zigarn commented 7 years ago

Je pense simplement que l'image officielle fait du nettoyage des dépendances juste après l'installation :

[...]
apk add --no-cache --virtual .build-deps \
        binutils-gold \
        curl \
        g++ \
[...]
&& apk del .build-deps \
[...]
$ docker history zenika/alpine-node
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
168eace2436b        4 months ago        /bin/sh -c #(nop) WORKDIR /usr/src/app          0 B                 
<missing>           4 months ago        /bin/sh -c mkdir -p /usr/src/app                0 B                 
<missing>           4 months ago        /bin/sh -c apk add --update --no-cache make g   231 MB              
<missing>           5 months ago        /bin/sh -c #(nop) ADD file:852e9d0cb9d906535a   4.799 MB      

$ docker history node:7.2-alpine
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
164dad592f49        37 hours ago        /bin/sh -c #(nop)  CMD ["node"]                 0 B                 
<missing>           37 hours ago        /bin/sh -c adduser -D -u 1000 node     && apk   50.5 MB             
<missing>           6 days ago          /bin/sh -c #(nop)  ENV NODE_VERSION=7.2.0       0 B                 
<missing>           2 weeks ago         /bin/sh -c #(nop)  ENV NPM_CONFIG_LOGLEVEL=in   0 B                 
<missing>           6 weeks ago         /bin/sh -c #(nop) ADD file:7afbc23fda8b0b3872   4.803 MB            
jlandure commented 7 years ago

C'est surtout que la node:alpine n'avait pas G++ et python avant ^^ mais effectivement dans le Dockerfile On voit que les 'tool' sont bien ajoutées:

    && apk add --no-cache --virtual .build-deps \
        binutils-gold \
        curl \
        g++ \
        gcc \
        gnupg \
        libgcc \
        linux-headers \
        make \
        python \
zigarn commented 7 years ago

Mais surtout installé en virtual-packages puis supprimés :

apk del .build-deps 
jlandure commented 7 years ago

Oui pour sûr, j'avais créé la zenika:alpine-node en 10min cet été dans avoir regarder pour nettoyer la distrib. ^^

Pour info, il manque toujours git dans la node:alpine officielle pour info et c'est gênant je trouve pour les projets. Pour les formations, on en a p'être pas besoin mais pour les projets, c'est fréquent de forker un repo et de pointer dessus en attendant l'acceptation de la PR.

zigarn commented 7 years ago

On pourrait installer git dans le Dockerfile de ZFF effectivement.

jlandure commented 7 years ago

Non, le mieux serait de garder notre zenika:alpine-node en se basant sur la node:alpine et ajouter uniquement git + nettoyage

zigarn commented 7 years ago

Plus de nettoyage nécessaire du coup, non ?

jlandure commented 7 years ago

j'ai pas compris 😀

zigarn commented 7 years ago

Ben si on ne fait qu'installer git en plus, il n'y a rien de plus à nettoyer.