Table des matières

Docker: container pour rest-server

Au préalable, compiler un serveur rest et prendre le binaire.

  1. Créer un fichier Dockerfile (D majuscule est important):
    nano Dockerfile

    et introduisez les lignes suivantes

    # Filename: Dockerfile 
    FROM node:10-alpine
    ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    COPY rest-server /usr/bin/
    COPY start.sh /
    EXPOSE 8000
    CMD ["/start.sh"]
  1. Créer un fichier start.sh:
    nano start.sh

    et introduisez les lignes suivantes

    #!/bin/sh
    
    set -e
    echo makeITsimple Rest Server
    echo ------------------------
    echo Args: $OPTION
    echo
    
    if [ ! -f "$CHEMIN/.htpasswd" ]; then
        echo "htpasswd doesn't exist - creating it"
        touch $CHEMIN/.htpasswd
    fi
    
    if [ ! -z "$OPTION" ] && [ ! -z "$CHEMIN" ]; then
            exec /usr/bin/rest-server --path $CHEMIN $OPTION
            else
            echo "Pas de variables OPTIONS ou CHEMIN défini"
            fi
    
  2. Exporter l'image
    docker save makeitsimple-rest-server > test.tar

Script pour effacer/créer/puis lancer une image Docker test

echo Suppression anciennes images
echo ****************************
echo
docker image rmi test -f
echo Création nouvelle image
echo ***********************
docker build . -t test
echo
echo Lancement nouvelle image
echo ************************
echo
docker run -ti -v /root/test/data:/tmp -e OPTION="--append-only --private-repos" -e CHEMIN="/tmp" test

Création d'un user htpasswd -nbB user password

Sources