Vagrantにmailhogの構築
概要
開発環境(Vagrant + ubuntu/trusty64)にメールの確認用でMailhogをインストールした話をまとめてみました。
Go言語のインストール
MailhogをインストールするためにGo言語をインストールします。
失敗
GUEST> sudo apt-get install golang-go
この方法でインストールするとOSのバージョンが低いせいかgoが1.2.1がインストールされてしまいます。このバージョンだとMailhogをインストールする際に以下のエラーが発生します。
package github.com/mailhog/MailHog imports github.com/gorilla/pat imports github.com/gorilla/context imports github.com/gorilla/mux imports context: unrecognized import path "context" package github.com/mailhog/MailHog imports github.com/gorilla/pat imports github.com/gorilla/context imports github.com/gorilla/mux imports github.com/ian-kent/envconf imports github.com/ian-kent/go-log/log imports github.com/t-k/fluent-logger-golang/fluent imports github.com/tinylib/msgp/msgp imports github.com/philhofer/fwd imports github.com/mailhog/MailHog-Server/api imports github.com/gorilla/websocket imports net/http/httptrace: unrecognized import path "net/http/httptrace"
成功した物
使用する基本ツールをインストールします。
GUEST> sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" install git
GO言語をダウンロードします。
GUEST> curl -O https://storage.googleapis.com/golang/go1.9.1.linux-amd64.tar.gz
圧縮ファイルを解凍して/usr/localへ移動します。
GUEST> tar -xvf go1.9.1.linux-amd64.tar.gz GUEST> sudo mv go /usr/local GUEST> rm go1.9.1.linux-amd64.tar.gz
環境設定を行います。
GUEST> touch /home/vagrant/.bash_profile GUEST> echo "export PATH=$PATH:/usr/local/go/bin" >> /home/vagrant/.bash_profile GUEST> echo `export GOPATH=/home/vagrant/workspace:$PATH` >> /home/vagrant/.bash_profile GUEST> export GOPATH=/home/vagrant/workspace GUEST> mkdir -p "$GOPATH/bin"
Mailhogをインストール
Mailhogとmhsendmailをインストールします。
GUEST> go get github.com/mailhog/MailHog GUEST> go get github.com/mailhog/mhsendmail GUEST> sudo cp /home/juampy/gocode/bin/MailHog /usr/local/bin/mailhog GUEST> sudo cp /home/juampy/gocode/bin/mhsendmail /usr/local/bin/mhsendmail
サービス登録ファイルを作成します。
GUEST> sudo vi /etc/init/mailhog.conf description "mailhog-service" start on started networking stop on runlevel [!2345] exec /usr/local/bin/mailhog -api-bind-addr 192.168.33.10:8025 -ui-bind-addr 192.168.33.10:8025 -smtp-bind-addr 127.0.0.1:1025
*「192.168.33.10」はホストからGUESTへ接続可能なIPです。127.0.0.1で設定するとHOSTから接続できないことを注意してください。
サーバーが起動時に実行するように設定します。
GUEST> sudo sysv-rc-conf mailhog on GUEST> sudo sysv-rc-conf -list | grep mailhog
起動します。
GUEST> sudo service mailhog start
確認
「http://192.168.33.10:8025」で接続してみます。