Raspberry Pi 4でmongodbとmongo-expressを起動してみました。OSはUbuntu 20.04.1 LTSのaarch64(64ビット)版になります。
おうちで使っているサービスを、追々Raspberry Piでも動くようにしたいな、という自分用の覚書で恐縮ですが。
Podmanでmongodbとmongo-expressを起動する手順を記録しておこうと思います。
Ubuntu 20.04.1 LTSのインストール
サーバとして長期間安定して使用できるように、microSDカードは使わず、USBストレージからUbuntuを起動しました。
Podmanのインストール
こちらの手順でPodmanをインストールします。
MongoDB, Mongo-express起動設定
※21.1.31追記:
Podmanのバージョンアップの影響で、下記のYAMLファイルではポッドが正常に起動できない場合があります。
その場合、ポッドを手動で作成後、YAMLファイルを出力する必要が御座います。
手順は下記の記事を御覧ください。
ポッドの実行に使用する、Kubernetesのpod.yaml設定ファイルを作成します。
mkdir mongodb
cd mongodb
vi mongo-pod.yaml
次の内容になります。
# Generation of Kubernetes YAML is still under development!
#
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-2.0.6
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2020-09-20T04:27:14Z"
labels:
app: mongo-pod
name: mongo-pod
spec:
containers:
- name: mongo-exp
env:
- name: ME_CONFIG_MONGODB_SERVER
value: 127.0.0.1
- name: ME_CONFIG_MONGODB_ADMINUSERNAME
value: root
- name: ME_CONFIG_MONGODB_ADMINPASSWORD
value: humongous
image: docker.io/library/mongo-express:latest
ports:
- containerPort: 8081
hostPort: 8081
protocol: TCP
resources: {}
securityContext:
allowPrivilegeEscalation: true
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
seLinuxOptions: {}
workingDir: /node_modules/mongo-express
- name: mongo-db
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: root
- name: MONGO_INITDB_ROOT_PASSWORD
value: humongous
image: docker.io/library/mongo:latest
ports:
- containerPort: 27017
hostPort: 27017
protocol: TCP
- containerPort: 28017
hostPort: 28017
protocol: TCP
resources: {}
securityContext:
allowPrivilegeEscalation: true
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
seLinuxOptions: {}
workingDir: /
volumeMounts:
- mountPath: /data/db
name: db-volume
volumes:
- name: db-volume
hostPath:
path: /home/ubuntu/mongodb/db
type: Directory
status: {}
/data/dbディレクトリを永続化しようと思います。ディレクトリ作成後、ポッドを起動します。
mkdir db
sudo podman play kube ./mongo-pod.yaml
このような感じで、Docker Hubの公式mongodbですがaarch64アーキテクチャでかつPodmanで問題なく起動しました。
WebブラウザでMongo-Expressにアクセスしてみます。
http://<Raspberry PiのIPアドレス>:8081
永続化の確認のため、データベースを作成してみます。ポッドを停止・削除して、再度起動してみます。
sudo podman pod stop mongo-pod
sudo podman pod rm mongo-pod
sudo podman play kube ./mongo-pod.yaml
ポッドの起動後、Mongo Expressにアクセスすると、先程作成したデータベースが表示され、ポッドを削除しても消えないことを確認できました。
そうそう、pod.yamlファイルのパスワードですが。いつものヒューマンガス様ぁぁになっていますので、そこは変えておいて下さい。ウェズ・ジョーンズあたりに。