Introduction

IT会社にいると、大なり小なり資産の管理作業が発生します。
自分のグループだけでもかなりの資産がありますが、それをExcelで管理していて辛い状況です。
そんな中、資産管理のWebアプリでよさげなアプリが、OSSかつDockerで提供していたの導入してみました。
ちなみに、Windows 10でのDocker for Windows環境です。

Get started!!

インストール手順は下記に書いてありますが、ちょっと分かりにくいです。

1. 設定ファイルの用意

下記のようなテキストファイルを用意します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Mysql Parameters
MYSQL_ROOT_PASSWORD=password
MYSQL_DATABASE=snipeit
MYSQL_USER=snipeit
MYSQL_PASSWORD=password

# Email Parameters
# - the hostname/IP address of your mailserver
MAIL_PORT_587_TCP_ADDR=smtp.whatever.com
#the port for the mailserver (probably 587, could be another)
MAIL_PORT_587_TCP_PORT=587
# the default from address, and from name for emails
MAIL_ENV_FROM_ADDR=youremail@yourdomain.com
MAIL_ENV_FROM_NAME=John Doe
# - pick 'tls' for SMTP-over-SSL, 'tcp' for unencrypted
MAIL_ENV_ENCRYPTION=tcp
# SMTP username and password
MAIL_ENV_USERNAME=your_email_username
MAIL_ENV_PASSWORD=your_email_password

# Snipe-IT Settings
APP_ENV=production
APP_DEBUG=false
APP_KEY=★後から設定★
APP_URL=http://127.0.0.1:80
APP_TIMEZONE='Asia/Tokyo'
APP_LOCALE=ja

このファイルのパスを、ここではD:\VirtualMachines\Docker\volume\snipe-it\env.txtとして保存します。任意の場所でよいです。

2. データベースコンテナの用意

次に、データの保存先であるデータベースのコンテナを用意します。
データベースのファイルはホスト側に保存しますので、ディレクトリをあらかじめ用意しておきます。
ここでは、D:\VirtualMachines\Docker\volume\snipe-it\mysqlがデータベースファイルの格納先とします。
下記がデータベース用のコンテナです。

1
$ docker run --privileged --name snipe-mysql --env-file=D:/VirtualMachines/Docker/volume/snipe-it/env.txt -v D:/VirtualMachines/Docker/volume/snipe-it/mysql/:/var/lib/mysql -d -P mysql:5.6

3. APP_KEYの取得

先のテキストファイルに★後から設定★と書かれていた値を取得します。

1
2
3
4
$ docker run --rm snipe/snipe-it:latest
Please re-run this container with an environment variable $APP_KEY
An example APP_KEY you could use is:
base64:kzzSXbSsFtAtbvhGYrp9M3H0WeJGHrw3385xy5PAXP4=

このbase64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxという部分を先のテキストファイルに貼り付けます。
つまり下記のようになります。

1
APP_KEY=base64:kzzSXbSsFtAtbvhGYrp9M3H0WeJGHrw3385xy5PAXP4=

4.Snipe-ITの起動

最後にSnipe-ITそのもののコンテナを作成します。
ここでも設定などをホスト側に作成するので、ディレクトリをあらかじめ用意しておきます。
ここでは、D:\VirtualMachines\Docker\volume\snipe-itとします。
下記がコンテナ作成のコマンドです。
ホスト側のポート番号9001は自由に変えてもらって結構です。

1
$ docker run -d -p 9001:80 --privileged --name="snipe-it" --link snipe-mysql:mysql --env-file=D:/VirtualMachines/Docker/volume/snipe-it/env.txt -v D:/VirtualMachines/Docker/volume/snipe-it/:/var/lib/snipeit snipe/snipe-it:latest

これでWebからアクセスできますが、このままだと動きません。
情報が見当たらなかったのですが、必要なフォルダとファイルが作られていないため、データベースを作る際にエラーになってしまうので、下記のコマンドで回避します。

1
2
3
4
$ docker exec -it snipe-it /bin/bash
# mkdir /var/lib/snipeit/keys
# echo -n > /var/lib/snipeit/keys/oauth-private.key
# echo -n > /var/lib/snipeit/keys/oauth-public.key

5.セットアップ

Next: Create Database Tables をクリック Next: Create User をクリック 必要な情報を入力して、Next: Save User をクリック
セットアップ終了!!