LoginSignup
1
1

More than 5 years have passed since last update.

ホストマシンの環境変数(proxy周りとか)を反映したDockerfile/docker-compose.ymlを生成する

Posted at

proxy環境下でdockerを使っているとあらゆるdocker imageにproxy設定しないといけないので面倒ですね。
ホストマシンの環境変数を反映したDockerfile/docker-compose.ymlを生成するツール、docker-envを使ってシュッとdocker runしましょう。

インストール

このページからプラットフォームにあったバイナリをダウンロードします。

golangの実行環境がある方は以下でもOKです。

$ go get github.com/mpppk/docker-env

使い方

docker-env <docker image名>を実行すると、ホストマシンの環境変数がひたすら設定されたDockerfileが生成されます。
全部は要らないので、--queryオプションで絞り込みましょう。-qでも大丈夫です。
例えばproxy関連の環境変数(HTTP_PROXY, HTTPS_PROXY, NO_PROXY)を設定したい場合、以下のようにします。(正規表現が使えます。)

$ docker-env -q proxy node:latest

これで以下のようなDockerfileが生成されます。

FROM node:latest
ENV HTTP_PROXY http://proxy.example.com
ENV HTTPS_PROXY http://proxy.example.com
ENV NO_PROXY willbeignored.com

--format-fオプションでcomposeを指定すると、docker-composeファイルが生成されます。

$ docker-env -q proxy -f compose node:latest redis:latest
services:
  nodelatest:
    environment:
      HTTP_PROXY: http://proxy.example.com
      HTTPS_PROXY: http://proxy.example.com
      NO_PROXY: willignore.com
    image: node:latest
  redislatest:
    environment:
      HTTP_PROXY: http://proxy.example.com
      HTTPS_PROXY: http://proxy.example.com
      NO_PROXY: willignore.com
    image: redis:latest
version: "3"

これでバリバリコンテナを立てられますね。
proxy周り以外でもdocker-envの良い使い方があれば教えてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1