余っている32bitパソコンにDocker環境を作って、Mattermostを構築してみます。
前提
- 32bit Windowsパソコンしか余っていなかった。
- Virtual Boxは導入しました。
- Ubuntu Server 14.04で仮想サーバ立てました。
Dockerを導入
golfingをインストール
golangの32bitイメージを取得し適当な場所に解凍。
解凍後、GOROOT,GOPATHを指定。
$ pwd
/home/hoge
$ wget https://storage.googleapis.com/golang/go1.5.3.linux-386.tar.gz
$ tar zxvf go1.5.3.linux-386.tar.gz
$ export GOROOT=$HOME/go
$ mkdir gocode
$ export GOPATH=$HOME/gocode
$ export PATH=$GOPATH/bin:$PATH:$GOROOT/bin
dockerのビルドに必要なものをapt-get instal
$ sudo apt-get -y install git linux-image-extra-$(uname -r) lxc xz-utils
dockerとubuntu32bitイメージのインストール
docker-32bit/ubuntuのbuild-image.shを実行します。
※proxy環境で実行する場合、以下のようにshを修正して実行
#!/bin/bash -ex
### Build a docker image for ubuntu i386.
### settings
arch=i386
suite=${1:-trusty}
chroot_dir="/var/chroot/$suite"
apt_mirror='http://archive.ubuntu.com/ubuntu'
docker_image="32bit/ubuntu:${1:-14.04}"
##########以下のように環境変数を追加###########
export http_proxy=http://proxy.hogehoge:8080
##########################################
### make sure that the required tools are installed
packages="debootstrap dchroot"
which docker || packages="$packages docker.io"
apt-get install -y $packages
### install a minbase system with debootstrap
export DEBIAN_FRONTEND=noninteractive
########## 以下のように修正 ################
# debootstrap --variant=minbase --arch=$arch
http_proxy=$http_proxy debootstrap --variant=minbase --arch=$arch
#########################################
$suite $chroot_dir $apt_mirror
以下省略
mattermostのビルドに必要なnode,rpmをインストール
$ sudo apt-get install npm
$ sudo apt-get install build-essential libssl-dev
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash
$ . ~/.bashrc
$ nvm install 5.5.0
mattermostのビルドに必要なruby,compassをインストール
$ sudo apt-get update
$ sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties
$ sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
$ curl -sSL https://rvm.io/mpapis.asc | gpg --import -
$ curl -L https://get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/rvm
$ echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
$ rvm install 2.1.2
$ rvm use 2.1.2 --default
$ ruby -v
$ gem install compass
mattemostを32bit環境でビルド
docker imageでは64bitでビルドしたものしかないので、githubから
cloneしてビルドします。
$ go get github.com/kr/godep
$ mkdir -p $GOPATH/src/github.com/mattermost/platform
$ git clone https://github.com/mattermost/platform $GOPATH/src/github.com/mattermost/platform
$ cd $GOPATH/src/github.com/mattermost/platform
$ make dist
mattemostをdocker buildしてimage構築
最後にmattermostのdocker imageを作成します。
まずは、docker buildに必要なファイルを集めます。
$ cd
$ mkdir mattermost
$ cd mattermost
$ cp $GOPATH/src/github.com/mattermost/platform/docker/1.4/Dockerfile ./.
$ cp $GOPATH//src/github.com/mattermost/platform/docker/1.4/config_docker.json ./.
$ cp $GOPATH//src/github.com/mattermost/platform/docker/1.4/docker-entry.sh ./.
ここでDockerfileを修正します。
# Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
# See License.txt for license information.
################元となるubuntuのイメージを32bitに変更#############
#FROM ubuntu:14.04
FROM 32bit/ubuntu:14.04
################################################################
#
# Install SQL
#
ENV MYSQL_ROOT_PASSWORD=mostest
ENV MYSQL_USER=mmuser
ENV MYSQL_PASSWORD=mostest
ENV MYSQL_DATABASE=mattermost_test
###########追加#############
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ls -l /sbin/initctl.distrib
RUN ln -s /bin/true /sbin/initctl
###########################
~途中略~
# Copy over files
############# mattersoftのバイナリの取得元を変更##########################
#ADD https://github.com/mattermost/platform/releases/download/v1.4.0/mattermost.tar.gz /
COPY mattermost.tar.gz /
########################################################################
RUN tar -zxvf /mattermost.tar.gz --strip-components=1 && rm /mattermost.tar.gz
ADD config_docker.json /
ADD docker-entry.sh /
RUN chmod +x /docker-entry.sh
ENTRYPOINT /docker-entry.sh
~以下略~
最後にdocker buildして、起動
$ cd
$ sudo docker build -t local/mattermost:1.0.0 mattermost
$ sudo docker run --name mattermost-dev -d --publish 8065:80 local/mattermost:1.0.0
これでブラウザからhttp://localhost:8065にアクセスすればmattermostを利用できます。