情報系人間のブログ

プログラミング、開発に関することを書いていきます。

dockerでgitbucketを起動する

dockerでgitbucketを起動するメモ。

環境

CentOS 6.7(2.6.32-573.7.1.el6.x86_64)

インストール

docker

Installation on CentOS
こちらの公式にある方法を使います。

sudo yum install docker-engine

インストール後dockerサービスを起動します。

sudo service docker start

このままだとdockerコマンドを使用するには毎回sudoする必要があります。回避するためにdocker groupにユーザーを追加します。

sudo usermod -aG docker your_username
docker-compose

docker-composeはdockerのシステム構成をymlで定義し、管理できるツールです。
使わなくても良いのですが、とりあえず使ってみます。
インストール方法はこちらも公式をそのまま使います。
Docker Compose

curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

ymlは以下のとおり。
docker-compose.yml

gitbucket:
   image: f99aq8ove/gitbucket
   ports:
    - "29418:29418"
    - "8080:8080"
   volumes:
    - ${PWD}/gitbucket-data:/gitbucket

imageは
f99aq8ove/docker-gitbucket · GitHub
を使います。これでgitbucketをインストールしたイメージを作成できます。
やっていることは以下のコマンドと同じです。

docker run -d -p 8080:8080 -p 29418:29418 -v ${PWD}/gitbucket-data:/gitbucket

f99aq8ove/gitbucketイメージからコンテナを作成し、ホストの8080,29418ポートをコンテナの8080,29418ポートに転送します。
また、コンテナ内のディレクトリ/gitbucketにホストのディレクトリ${PWD}/gitbucket-dataが割り当てられます。

gitbucket起動

準備ができたのでdockerコンテナを立ち上げます。
docker-compose.ymlがあるディレクトリで

docker-compose up -d

を実行します。-dを指定するとバックグラウンドで起動します。

$ docker ps
CONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS              PORTS                                              NAMES
e2a7682dcd8c        f99aq8ove/gitbucket   "java -jar /opt/gitb   8 hours ago         Up 8 hours          0.0.0.0:29418->29418/tcp, 0.0.0.0:8080->8080/tcp   gitbucket_gitbucket_1

立ち上がった後はhttp://localhost:8080/にアクセスすればgitbucketを使うことができます。

coocapodsでThere was an error reading '...CocoaPods-version.yml'.

pod install時に以下のエラーが出た。

$ pod install
Updating local specs repositories
[!] There was an error reading '/Users/xxxxxx/.cocoapods/repos/master/CocoaPods-version.yml'.
Please consult http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/ for more information.

調べたところpsychというgemが悪さをしているらしい。

$ gem list psych

*** LOCAL GEMS ***

psych (2.0.15, 2.0.8)

バージョンがでかい方をuninstallしてみる。

gem uninstall psych -v 2.0.15

これで動いた。

$ pod install
Updating local specs repositories
...

Vagrantで AWS EC2インスタンスを立ち上げる

vagrantAWS EC2を立ち上げるメモ

はじめにvagantのプラグインをインストール

vagrant plugin install vagrant-aws
vagrant plugin install dotenv

.envファイルに以下のようにawsの認証情報を記述する。
AWS_SECURITY_GROUPにはセキュリティグループ名ではなくIDを記述する。

AWS_SSH_USERNAME="ec2-user"
AWS_SSH_KEY=xxxxxxxx.pem
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
AWS_KEYPAIR_NAME=""
AWS_SECURITY_GROUP="sg-xxxxxx" 
AWS_SUBNET_ID="subnet-xxxxxx"

Vagrantの内容は以下のとおり

# -*- mode: ruby -*-
# vi: set ft=ruby :

Dotenv.load

ENV['VAGRANT_DEFAULT_PROVIDER'] = "aws"

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.provider :aws do |provider, override|
    override.vm.hostname          = "vagrant"
    override.vm.box_url           = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"
    override.vm.box               = "aws"
    override.ssh.username         = ENV['AWS_SSH_USERNAME']
    override.ssh.private_key_path = ENV['AWS_SSH_KEY']
    override.ssh.pty              = false

    provider.access_key_id        = ENV['AWS_ACCESS_KEY_ID']
    provider.secret_access_key    = ENV['AWS_SECRET_ACCESS_KEY']
    provider.keypair_name         = ENV['AWS_KEYPAIR_NAME']
    provider.region               = "ap-northeast-1" 
    provider.availability_zone    = "ap-northeast-1a"
    provider.ami                  = "ami-c9562fc8" 
    provider.instance_type        = "t1.micro"
    provider.instance_ready_timeout = 120
    provider.terminate_on_shutdown  = false

    provider.security_groups      = [
                                      ENV['AWS_SECURITY_GROUP'],
                                    ]

    provider.tags                 = {
                                      "Name"        => "vagrant",
                                      "Description" => "vagrant-aws",
                                    }

    provider.block_device_mapping = [{
                                      "DeviceName"              => "/dev/sda1",
                                      "VirtualName"             => "VagrantDisk",
                                      "Ebs.VolumeSize"          => "8",
                                      "Ebs.DeleteOnTermination" => true,
                                      "Ebs.VolumeType"          => "standard",
                                     }]

     provider.associate_public_ip = 'true'

     provider.subnet_id            = ENV['AWS_SUBNET_ID']
     provider.private_ip_address   = "x.x.x.x"
     provider.elastic_ip           = false

    override.vm.synced_folder "./", "/vagrant", disabled: true

  end

end

最後にvagrant upする。

vagrant up --provider=aws

gitのコミットメッセージでgithubのissueを閉じる

gitでgithubのissueを閉じる場合はコミットメッセージを以下のフォーマットで書く

close #1

これで#1のissueを閉じることが出来る。
複数閉じる場合は

close #1 #2

と書く。

closeの部分はfix,resolveでも良い。

Cocoacontrolsにライブラリを登録する

こちらで書いたのですが、iosのライブラリをcocoapodsに登録したのでcocoacontrolsにも登録してみした。

reidr.hatenablog.com

cocoacontrolsios,osxのUI系のライブラリをを掲載しているサービスです。登録申請すれば誰でも掲載してもらえる可能性があります。

申請方法は画面右上のSubmit a new Controlボタンを押して掲載して欲しいライブラリのURL,詳細情報を入力するだけです。
今回は申請後5日ほどで掲載されました。多くの開発者が見ているサービスなので掲載できればそれだけ多くの方に知ってもらうことができます。上記の通り簡単に申請できますので作ったらとりあえず申請するのが良いと思います。

最後に今回掲載して頂いたライブラリはこちらです。
OYSimpleAlertController for iOS - Cocoa Controls