てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

自社サーバに アプリを インストールして 使うことが増えてきたので
まずは Vagrant で テスト運用してみようかと 思ったわけです

今回は GitBucket を 立ち上げてみたいと思います

docker で やればいいじゃん とか いろいろ有りそうですが 僕は 基本的に Vagrant を 使っていますね

docker って ボケッと 使ってると リビジョンが溜まっていたり コンテナ が 停止していなかったり 等
汚れていく イメージが強くて あまり好きになれないのですよね…

今回は そんな話ではなくて GitBucket ですよ!!


GitBucket


GitBucket
https://gitbucket.github.io/

Scala で 書かれており Javaの実行環境である JVM で動作します

有名所だと GitLab だと思うのですが

GitLab
https://about.gitlab.com/

ググってみると 機能豊富な分だけ スペックを要求する と あったので 今回は GitBucket を 採用しました

では 早速 Vagrant で 立ち上げてみましょう


Vagrantfile


VAGRANT_CONFIGURATION = "2"

VAGRANT_NAME          = "gitbucket"
VAGRANT_NETWORK       = "192.168.33.5"


Vagrant.configure(VAGRANT_CONFIGURATION) do |config|

  config.vm.box = "centos/7"

  config.vm.hostname = VAGRANT_NAME

  config.vm.network "private_network", ip: VAGRANT_NETWORK

  config.vm.synced_folder "../script/", "/home/vagrant/script/", create: true, owner: 'vagrant', group: 'vagrant', mount_options: ['dmode=777,fmode=777']

  config.vm.provider "virtualbox" do |vb|
    vb.name = VAGRANT_NAME
  end

  config.vm.provision "shell", :path => "setup.sh"

end

setup.sh


echo '# SELinux disable ----------------------------------------------------------------------------------'
setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config

echo '# yum ----------------------------------------------------------------------------------------------'
yum -y upgrade

echo '# mkdir ~/download ---------------------------------------------------------------------------------'
mkdir -p ~/download/
cd ~/download/

# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

echo '# apache java tomcat wget --------------------------------------------------------------------------'
yum -y install httpd java-1.8.0-openjdk tomcat wget

echo '# GitBucket ----------------------------------------------------------------------------------------'
wget -P /usr/share/tomcat/webapps/ https://github.com/gitbucket/gitbucket/releases/download/4.27.0/gitbucket.war

echo '# MariaDB 10.3 -------------------------------------------------------------------------------------'
mkdir -p /etc/yum.repos.d/
touch /etc/yum.repos.d/mariadb.repo
cat << EOS > /etc/yum.repos.d/mariadb.repo
# MariaDB 10.3 CentOS repository list - created 2018-07-03 02:29 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOS

yum -y install MariaDB-server MariaDB-client

echo '# git ----------------------------------------------------------------------------------------------'
cd ~/download/
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
wget https://www.kernel.org/pub/software/scm/git/git-2.18.0.tar.gz
tar xzvf git-2.18.0.tar.gz
cd git-2.18.0
make prefix=/usr/local all
make prefix=/usr/local install
cd ~/download/

# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

echo '# apache restart -----------------------------------------------------------------------------------'
systemctl enable httpd
systemctl restart httpd

echo '# tomcat restart -----------------------------------------------------------------------------------'
systemctl enable tomcat
systemctl restart tomcat

今回は apache openjdk tomcat という 構成で GitBucket を 動かしています

vagrant up すると

GitBucket ローカル環境 (vagrant-hostsupdater 使用)
http://gitbucket:8080/gitbucket/

で アクセス することができます


感想


サクッと 環境を作ることができました

クラウドサービスを 使うまでもない 自分のPCでしか管理していない ファイル達を 管理して 使ってみようと思います

Git の 練習 にも 良いかもしれませんね!!

Related Article

vagrant up 時に synced_folder が マウントできなくて 困った話

詳細へ »

Vagrant で Virtualbox Guest Additions が インストールできない

詳細へ »

今更だけど Vagrantで 開発環境 の ベースを 作ってみた ( 2 )

詳細へ »