この記事は「Dokcerコンテナ上に開発環境一式を構築する」の一部です。
現在のステータス
- VPSのホストにUbuntuを入れる
- dnsを構築する
- nginxを構築する
- GitBucket環境を構築する <-イマココ
- Selenium用のJenkins環境を構築する
- Desktop環境(IntelliJ IDEA)を構築する
Dockerfile
GitBucketはJava以外特に組み合わせないので、Java8の公式イメージでもいいのですが、Ubuntu14.04にしておきます。
# GitBucket Dockerfile
FROM ubuntu:14.04
ENV DEBIAN_FRONTEND noninteractive
# Install.
RUN apt-get update && apt-get -y upgrade
&& apt-get install -y build-essential software-properties-common
&& apt-get install -y byobu curl git htop man zip unzip wget
&& rm -rf /var/lib/apt/lists/*
# Install java 8
RUN add-apt-repository ppa:webupd8team/java -y && apt-get update
&& (echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections) && apt-get install -y oracle-java8-installer oracle-java8-set-default
&& rm -rf /var/lib/apt/lists/*
ENV HOME /root
RUN locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
# time
RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
#user
ENV USER gitbucket
RUN /usr/sbin/useradd $USER
WORKDIR /home/$USER
USER $USER
javaのインストールはライセンスに同意する必要があるのでdebconf-set-selectionsが必要になります。
build.sh
#/bin/sh
. ../../setenv.sh
CONTAINER=gitbucket
cd $DOCKER_HOME/$CONTAINER
docker build --force-rm -t "lavans-$CONTAINER:latest" .
$ chmod 755 *.sh
$ ./build.sh
GitBucket取得
update.sh
#/bin/sh
VERSION=3.1.1
. ../../setenv.sh
wget https://github.com/takezoe/gitbucket/releases/download/$VERSION/gitbucket.war -O gitbucket-$VERSION.war
rm gitbucket.war
ln -s gitbucket-$VERSION.war gitbucket.war
起動終了スクリプト
run.sh
#/bin/sh
. ../setenv.sh
CONTAINER=gitbucket
docker run -v $DOCKER_DIR/$CONTAINER/:/home/$CONTAINER -u $CONTAINER -d \
-e HOME="/home/$CONTAINER" \
--name $CONTAINER -p 8080:8080 --dns=$IP \
lavans-$CONTAINER java -Xmx256m -jar $CONTAINER.war
#--host=gitbucket.lavans.jp
GitBucketのデータファイルは/home/gitbucket/.gitbucketに入るので
HOMEディレクトリをマウントして使うようにしました。gitbucketの起動オプションに-Xmx256mを指定しています。
kill.sh
#!/bin/sh
CONTAINER=gitbucket
docker kill $CONTAINER; docker rm $CONTAINER