Voici un petit guide de mise en route pour déployer une application Spring Boot dans un conteneur docker sur ArchLinux
Pré-requis
Les commandes ci-dessous sous exécutée sur ArchLinux.
Installation de docker et de ses autres outils
$ sudo pacman -Syu docker docker-compose docker-machine
$ sudo systemctl start docker
$ sudo systemctl enable docker
Modification des droits d'accès de l'utilisateur
ATTENTION :
If you want to be able to run docker as a regular user, add your user to the docker user group.
Anyone added to the docker group is root equivalent. More information here and here.
$ sudo gpasswd -a ${USER} docker
$ sudo reboot
Sous GNOME j'ai dû redémarrer la machine car un simple déconnexion de session n'a pas suffi.
Testons la configuration
Est-ce que Docker est bien configuré
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Si on vous demande un mot de passe c'est que vous avez merdé lors de l'ajout du groupe docker à votre utilisateur
Récupérons un simple projet Spring Boot, compilons le
$ mkdir Projets
$ cd Projets
$ git clone https://gitlab.com/docker-spring-cloud/docker-demo.git
$ cd docker-demo
$ ./mvnw install dockerfile:build
Félicitation, vous venez de compiler et de "conteneuriser" votre première application Spring Boot
Démarrons le conteneur Docker
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
andycostanzacom/docker-demo latest 18c5d16986d9 2 hours ago 119MB
openjdk 8-jdk-alpine 97bc1352afde 7 weeks ago 103MB
$ docker run -p 8080:8080 -t andycostanzacom/docker-demo
Dans votre navigateur internet, ouvrez la page http://localhost:8080/hello et si la page vous répond "hello" c'est que tout va bien, vous venez d'appeler un endpoint Spring Boot dans un conteneur docker.
Trucs et astuces
Pour savoir quel conteneur est en cours de fonctionnement :
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43721a2aff5d andycostanzacom/docker-demo "java -cp app:app/li…" 8 seconds ago Up 7 seconds 0.0.0.0:8080->8080/tcp hungry_greider
Pour arrêter un conteneur :
$ docker stop 43721a2aff5d
43721a2aff5d
Ouais je sais, il pourrait être plus explicite que de renvoyer juste le Container ID!
Top comments (0)