Skip to content

Images Solutions

Dockerfile

Créer un Dockerfile pur construire une image nommée myhello :

  • à base de alpine:3.17
  • un script entrypoint.sh qui fait un echo des arguments suivi du username

Solution

Terminal window
vi Dockerfile
Terminal window
FROM alpine:3.17
COPY entrypoint.sh /
CMD ["Bonjour"]
ENTRYPOINT ["/entrypoint.sh"]

Créer un script shell

Solution

Terminal window
vi entrypoint.sh
#!/bin/sh
echo $* $(whoami)

Creation par étapes

Solution

Terminal window
vi hello.c
Terminal window
#include <stdio.h>
int main(void)
{
printf("Bonjour en lagage C ...\n");
}

Solution

Terminal window
vi Dockerfile
Terminal window
FROM alpine:3.17 AS first
COPY hello.c /
RUN apk add gcc libc-dev \
&& gcc -o hello hello.c
CMD ["/hello"]

Solution

Terminal window
vi Dockerfile
Terminal window
FROM alpine:3.17 AS first
COPY hello.c /
RUN apk add gcc libc-dev \
&& gcc -o hello hello.c
FROM alpine:3.17 AS second
COPY --from=first hello /
CMD ["/hello"]

Création d’une image de base

Créer une image de base alpine avec un compilateur gcc

Solution

Terminal window
docker run -it --name=gcc alpine:3.17
# apk add gcc libc-dev

Créer l’archive avec le commande docker export

Solution

Terminal window
$ docker export gcc -o gcc.tar

Créer un Dockerfile pour l’image de base

Solution

Terminal window
$ cat Dockerfile
Terminal window
FROM scratch
ADD gcc.tar /
CMD ["/bin/sh"]

Construire l’image de base

Solution

Terminal window
docker build -t gcc:alpine .

Tester l’image de base

Solution

Terminal window
$ docker run -it gcc:alpine
# gcc