〇MantisBTの画面
実行手順
1. 以下のDockerfileを使用してイメージを作成します# ホスト側で実行して、dockerの向き先をminikubeにします
eval $(minikube -p minikube docker-env)
cat << EOF > Dockerfile
FROM alpine:3.15
WORKDIR /
RUN apk update \
&& apk add --no-cache apache2 php8-apache2 php8-pgsql php8-pdo php8-pdo_pgsql php8-intl php8-mbstring php8-session php8-curl php8-json php8-xml php8-zip php8-tokenizer php8-ctype php8-gd php8-xmlwriter php8-xmlreader php8-dom php8-zlib php8-iconv php8-simplexml php8-fileinfo openssl openrc unzip \
&& rm -rf /var/cache/apk/* \
&& wget https://sourceforge.net/projects/mantisbt/files/mantis-stable/2.25.2/mantisbt-2.25.2.tar.gz \
&& tar xvfz mantisbt-2.25.2.tar.gz \
&& rm -f mantisbt-2.25.2.tar.gz \
&& mv /var/www/localhost/htdocs /var/www/localhost/htdocs.bak \
&& mv mantisbt-2.25.2 /var/www/localhost/htdocs \
&& chown -R apache:apache /var/www/localhost/htdocs \
&& mkdir -p /run/apache2
EXPOSE 80
VOLUME ["/var/www/localhost/htdocs/config"]
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
EOF
docker build -t mantisbtpg .
2. Mantis Bug Tracker構成格納/PostgreSQLデータ用ディレクトリを作成
以下のコマンドでMantis Bug Tracker構成格納/PostgreSQLデータ用ディレクトリを作成します。
minikube ssh
sudo mkdir -p /var/mantisbt-conf
sudo mkdir -p /var/pgdata
sudo chown 100:101 /var/mantisbt-conf
exit
3. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※Mantis Bug Tracker用
cat << EOF > local-mantisbt-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-mantisbt-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
storageClassName: local-storage
local:
path: /var/mantisbt-conf
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
EOF
kubectl apply -f ./local-mantisbt-pv.yml
※PostgreSQL用
cat << EOF > local-pg-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-pg-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
storageClassName: local-storage
local:
path: /var/pgdata
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
EOF
kubectl apply -f ./local-pg-pv.yml
4. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※Mantis Bug Tracker用
cat << EOF > local-mantisbt-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-mantisbt-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 5Gi
volumeName: local-mantisbt-pv
EOF
kubectl apply -f ./local-mantisbt-pvc.yml
※PostgreSQL用
cat << EOF > local-pg-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-pg-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 5Gi
volumeName: local-pg-pv
EOF
kubectl apply -f ./local-pg-pvc.yml
5. Mantis Bug TrackerとPostgreSQLのDeploymentの作成
以下のコマンドでMantis Bug TrackerとPostgreSQLを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > mantisbt-pg-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mantisbt-pg-deployment
labels:
app: mantisbt-pg
spec:
replicas: 1
selector:
matchLabels:
app: mantisbt-pg
strategy:
type: Recreate
template:
metadata:
labels:
app: mantisbt-pg
spec:
containers:
- name: mypg
image: postgres:14-alpine
env:
- name: POSTGRES_DB
value: mantisbt
- name: POSTGRES_USER
value: mantisbt
- name: POSTGRES_PASSWORD
value: mantisbt
ports:
- containerPort: 5432
volumeMounts:
- name: pgdata
mountPath: /var/lib/postgresql/data
- name: mantisbt
image: mantisbtpg
imagePullPolicy: Never # ローカルイメージを使用する
ports:
- containerPort: 80
volumeMounts:
- name: mantisbt-conf
mountPath: /var/www/localhost/htdocs/config
volumes:
- name: pgdata
persistentVolumeClaim:
claimName: local-pg-pvc
- name: mantisbt-conf
persistentVolumeClaim:
claimName: local-mantisbt-pvc
EOF
kubectl apply -f ./mantisbt-pg-deployment.yml
6. Mantis Bug TrackerとPostgreSQLのサービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > mantisbt-pg-service.yml
apiVersion: v1
kind: Service
metadata:
name: mantisbt-pg-service
spec:
selector:
app: mantisbt-pg
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 80
- name: db
protocol: TCP
port: 5432
targetPort: 5432
EOF
kubectl apply -f ./mantisbt-pg-service.yml
7. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/mantisbt-pg-service 8080:8080 5432:5432
ブラウザから以下のURLからMantisBTにアクセスします。
http://<MinikubeをインストールしたホストのIP>:8080/
Installer Optionsで以下の項目を入力する
Type of Database: PostgreSQL
Hostname (for Database Server): 127.0.0.1
Username (for Database): mantisbt
Password (for Database): mantisbt
Database name (for Database): mantisbt
0 件のコメント:
コメントを投稿