LoginSignup
0
0

More than 5 years have passed since last update.

Docker環境でGLPIを0.85.5から9.2.1へアップグレード

Posted at

Docker環境でGLPI0.85.5から9.2.1アップデートしたときの手順メモです。
9.4系が最新ですがDBのマイグレーションでテーブル関連のエラーが出るため保留にしました。
公式フォーラムで何件か投稿がありましたので、詳細確認後にアップグレードしたいと思います。

その他対応内容

環境

Docker version 18.09.1
docker-compose version 1.24.0
hostOS:CentOS7-minimal
GLPI:9.2.1

ベースイメージ
https://github.com/fjudith/docker-glpi
※オリジナルはmariaDBが5.5ですが10.3を使っています。

ディレクトリ構成

/glpi921
├docker-compose.yml
├glpi.env #データベースの設定
├db
 ├Dockerfile
 ├script
 │ └db_backup.sh #DBのバックアップスクリプト
 └yyyymmdd.sql #データベースのバックアップファイル(リストア用)
└app
 ├Dockerfile
 ├datainjection-2.5.2.tar.gz
 └php.ini

docker-compose.yml

docker-compose.yml

version: '2'

services:
  db:
    build: ./db
    env_file:
    - ./glpi.env
    environment:
    - "TZ=Japan"
    volumes:
    - glpi-db:/var/lib/mysql
    - ./db:/docker-entrypoint-initdb.d
    - glpi-db-backup:/backup
    ports:
    - 32806:3306/tcp
    restart: always

  app:
    build: ./app
    volumes:
    - /etc/localtime:/etc/localtime:ro
    environment:
    - "TZ=Japan"
    volumes:
    - glpi-app:/var/www/html/
    - ./app/php.ini:/usr/local/etc/php/php.ini
    links:
    - db:mysql
    ports:
    - 8081:80/tcp
    restart: always

volumes:
  glpi-db: {}
  glpi-db-backup: {}
  glpi-app: {}

Dockerfile #app

※修正箇所のみ
Vimを追加


RUN apt-get -y update
RUN apt-get install --no-install-recommends -yqq \
    zlib1g \
    cron \
    bzip2 \
    wget \
    nano \ 
    vim 

プラグインの配置と不要ファイルの削除を追記


COPY datainjection-2.5.2.tar.gz /var/www/html/plugins/
WORKDIR /var/www/html
RUN tar zxvf  plugins/datainjection-2.5.2.tar.gz -C plugins/
RUN rm plugins/remove.txt

EXPOSE 80
CMD ["apache2-foreground"]

Dockerfile #db

※オリジナルからの変更点:db_backup.shの配置とbackupディレクトリの作成


FROM mariadb
RUN apt-get update
RUN apt-get install -y  vim locales
RUN apt-get install -y language-pack-ja-base language-pack-ja
RUN locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LC_CTYPE ja_JP.UTF-8
RUN localedef -f UTF-8 -i ja_JP ja_JP.utf8

COPY db_backup.sh /opt/
RUN chmod +x /opt/db_backup.sh
RUN mkdir backup

phpのタイムゾーン設定 ※修正箇所のみ

php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = Japanese

DBの初期設定

glpi.env

MYSQL_ROOT_PASSWORD=rootpass
MYSQL_DATABASE=glpi
MYSQL_USER=glpi
MYSQL_PASSWORD=userpass

データベースの初期データ読込み

yyyymmdd.sql
GLPI0.85.5のデータベースのmysql dumpを準備しました。
dbディレクトリの直下に配置しています。
下記の記載により初期データのリストアが可能です。
詳細は上記参考ページをご確認ください。

docker-compose.yml
    - ./db:/docker-entrypoint-initdb.d

GUIでアップグレード

注意点:アップグレードを選択
glpi-update.jpg

プラグイン

利用しているプラグインは[File injection](※0.85ではdata injection)のみです。
バージョンにあったプラグインを公式ページよりダウンロード。
ファイルをコピーするプロセスをDockerfileに記載しております。
このプラグインをアプリ起動後に有効化します。
plugin01.jpg
plugin02.jpg
plugin03.jpg

データベースのバックアップ設定(1日1回)

※ホストサーバでの作業となります。
スクリプトファイルは前回の記事のままです。前回記事


$ crontab -e

18:30にデータベースのバックアップを実施

30 18 * * * docker exec glpi921_db_1 /opt/db_backup.sh

ホスト起動時にコンテナ起動

※ホストサーバでの作業となります。
crontabにてリブート時に自動的にコンテナを起動するように設定しました。


$ crontab -e

@reboot cd /home/docker/glpi921/; docker-compose up -d

今後運用で試したい機能

  • ユーザーサポート機能

    • インシデント管理
    • メールでのチケット登録
    • Googleフォーム経由でのチケット登録
  • 9.4へのアップグレード

    • データセンターのラックの管理
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0