○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-mysqli php8-pdo php8-pdo_mysql 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 mantisbtmariadb .
2. Mantis Bug Tracker構成格納/MariaDBデータ用ディレクトリを作成
以下のコマンドでMantis Bug Tracker構成格納/MariaDBデータ用ディレクトリを作成します。
minikube ssh
sudo mkdir -p /var/mantisbt-conf
sudo mkdir -p /var/mariadb-data
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
※MariaDB用
cat << EOF > local-mariadb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-mariadb-pv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
storageClassName: local-storage
local:
path: /var/mariadb-data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
EOF
kubectl apply -f ./local-mariadb-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
※MariaDB用
cat << EOF > local-mariadb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-mariadb-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 5Gi
volumeName: local-mariadb-pv
EOF
kubectl apply -f ./local-mariadb-pvc.yml
5. Mantis Bug TrackerとMariaDBのDeploymentの作成
以下のコマンドでMantis Bug TrackerとMariaDBを含むポッドと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > mantisbt-mariadb-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mantisbt-mariadb-deployment
labels:
app: mantisbt-mariadb
spec:
replicas: 1
selector:
matchLabels:
app: mantisbt-mariadb
strategy:
type: Recreate
template:
metadata:
labels:
app: mantisbt-mariadb
spec:
containers:
- name: mariadb
image: mariadb:10.7-focal
env:
- name: MYSQL_ROOT_PASSWORD
value: mantisbt
- name: MYSQL_DATABASE
value: mantisbt
- name: MYSQL_USER
value: mantisbt
- name: MYSQL_PASSWORD
value: mantisbt
ports:
- containerPort: 3306
volumeMounts:
- name: mariadb-data
mountPath: /var/lib/mysql
- name: mantisbt
image: mantisbtmariadb
imagePullPolicy: Never # ローカルイメージを使用する
ports:
- containerPort: 80
volumeMounts:
- name: mantisbt-conf
mountPath: /var/www/localhost/htdocs/config
volumes:
- name: mariadb-data
persistentVolumeClaim:
claimName: local-mariadb-pvc
- name: mantisbt-conf
persistentVolumeClaim:
claimName: local-mantisbt-pvc
EOF
kubectl apply -f ./mantisbt-mariadb-deployment.yml
6. Mantis Bug TrackerとMariaDBのサービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > mantisbt-mariadb-service.yml
apiVersion: v1
kind: Service
metadata:
name: mantisbt-mariadb-service
spec:
selector:
app: mantisbt-mariadb
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 80
- name: db
protocol: TCP
port: 3306
targetPort: 3306
EOF
kubectl apply -f ./mantisbt-mariadb-service.yml
7. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/mantisbt-mariadb-service 8080:8080 3306:3306
ブラウザから以下のURLからmantisbtにアクセスします。
http://<MinikubeをインストールしたホストのIP>:8080/
Installer Optionsで以下の項目を入力する
Type of Database: MySQL Improved
Hostname (for Database Server): 127.0.0.1
Username (for Database): mantisbt
Password (for Database): mantisbt
Database name (for Database): mantisbt
0 件のコメント:
コメントを投稿