docker-machineを自動起動するように設定する

dockerを起動する際、毎回毎回下記コマンドを実行するのはめんどうくさいです。

docker-machine start
eval "$(docker-machine env default)"

ってことで自動化します。

ホストマシン起動時にdocker-machineを自動起動する設定

~/Library/LaunchAgents以下に[com.docker.machine.default.plist]という名前でファイルを作成し、下記内容を記述します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>EnvironmentVariables</key>
        <dict>
            <key>PATH</key>
            <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin</string>
        </dict>
        <key>Label</key>
        <string>com.docker.machine.default</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/docker-machine</string>
            <string>start</string>
            <string>default</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

これでホストマシン起動時に自動でdocker-machineが立ち上がります。
また、defaultとなっている部分を編集すれば、任意のdocker-machineを自動起動することが可能です。

環境変数の設定

下記コマンドを実行し、bash_profileに書き込みます。

echo 'eval "$(docker-machine env default)"' >> ~/.bash_profile

以上です。これでホストマシン起動時にdocker-machineを自動起動し、環境変数を設定してくれます。

注意点

ホストマシンを起動して、すぐにターミナルを起動するとdocker-machineが起動していない状態で環境変数を通しに行ってしまうためエラーが発生してしまいます。
スクリーンショット 2016-08-15 10.27.22

このエラーが発生した場合、少し待ってから再度ターミナルを起動すれば正常に環境変数が適用されます。

おわりに

こういうの楽しいね。好きだわ〜( ^ω^ )

コメントを残す

メールアドレスが公開されることはありません。