MongoDb 3.4 sur Raspberry Pi 3 64Bits avec Docker (Hypriot)

October 21, 2017
mongodb raspberrypi docker hypriot

Récemment je me suis lancé un petit défi : Utiliser un Raspberry Pi 3 pour auto-héberger un petit projet.

Le projet en question utilise :

Voilà pour la stack applicative.

Pour héberger tout ça sur le Raspberrypi, j’ai utilisé un OS “spécial” pour le Raspberrypi 3 : HypriotOS

Cet OS est une version 64Bits de Raspbian avec Docker pré-installé

Vous trouverez l’image à écrire sur votre carte SD là : https://github.com/DieterReuter/image-builder-rpi64/releases

(Un petit sudo dd if=hypriotos-rpi64-v20171005-093459.img of=/dev/sda bs=1M devrait faire l’affaire pour l’écriture vers la carte SD si /dev/sda correspond bien à votre carte SD)

Par défaut votre raspberrypi sera accessible via un nom de machine défini à black-pearl. Le nom est modifiable dans le fichier device-init.yaml situé dans le répertoire /dev/ de la carte SD.

$ ssh pirate@black-pearl.local

Le mot de passe par défaut est hypriot.

Ensuite j’ai utilisé la release officiel arm64 fourni par MongoDb pour réaliser mon Dockerfile : https://www.mongodb.com/download-center#community

Voici mon Dockerfile :

FROM arm64v8/debian:stretch

RUN groupadd -r mongodb && useradd -r -g mongodb mongodb

RUN apt-get update -y && apt-get -y install curl && \
   curl -O https://fastdl.mongodb.org/linux/mongodb-linux-arm64-ubuntu1604-3.4.9.tgz && \
   tar -zxvf mongodb-linux-arm64-ubuntu1604-3.4.9.tgz && \
   mv mongodb-linux-aarch64-ubuntu1604-3.4.9/bin/* /usr/bin/ && \
   rm mongodb-linux-arm64-ubuntu1604-3.4.9.tgz && \
   curl -O http://ftp.fr.debian.org/debian/pool/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u6_arm64.deb && \
   dpkg -i libssl1.0.0_1.0.1t-1+deb8u6_arm64.deb && \
   apt-get remove --purge -y curl && \
   rm -rf /tmp/* /var/tmp/* && \
   apt-get clean && \
   rm -rf /var/lib/apt/lists/*

RUN mkdir -p /data/db && chown -R mongodb:mongodb /data/db

USER mongodb

# Define mountable directories.
VOLUME ["/data/db"]

# Define working directory.
WORKDIR /data

# Define default command.
CMD ["mongod"]

# Expose ports.
#   - 27017: process
#   - 28017: http
EXPOSE 27017
EXPOSE 28017

Ensuite, un petit docker build -t sebf/arm64v8-mongodb . permet la génération de l’image docker. Enfin la commande docker run -d -p 27017:27017 -p 28017:28017 sebf/arm64v8-mongodb:latest démarrera un container avec MongoDb 3.4.9 !

Usine logicielle avec Gitlab runner, Nexus, Sonar - Partie 1

February 23, 2019
gitlab-runner ci/cd docker nexus sonar
comments powered by Disqus