クリエイター:メタボ兔

ウェブやアプリの開発者で利用する色な技術やサーバーや開発環境の設定について共有する場

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」で接続してみます。

f:id:FattyRabbit:20210802233607p:plain