[解決済み] Dockerfileです。一行で複数の環境変数を設定する
2023-01-19 22:16:07
質問
環境変数は、以下のように一行で設定することで、中間画像を最小にすることができるという印象を持ちました。
FROM alpine:3.6
ENV RUBY_MAJOR 2.4 \
RUBY_VERSION 2.4.1 \
RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION 2.6.12 \
BUNDLER_VERSION 1.15.3
しかし、このスニペットを元にコンテナを実行し
# set |grep RU
を呼び出すと、変数が別々に割り当てられるのではなく、1つの文字列に結合されていることがわかります。
RUBY_MAJOR='2.4 RUBY_VERSION 2.4.1 RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 RUBYGEMS_VERSION 2.6.12 BUNDLER_VERSION 1.15.3'
しかし、以下のように各変数を明示的に設定すると、期待通りの出力が得られ、変数を呼び出す際のエラーも発生しません。
ENV RUBY_MAJOR 2.4
ENV RUBY_VERSION 2.4.1
ENV RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654
ENV RUBYGEMS_VERSION 2.6.12
ENV BUNDLER_VERSION 1.15.3
質問です。 環境変数の設定を1行にまとめることは可能でしょうか?もしそうなら、私はどのようにそれを行うのでしょうか?そして、それは良い習慣ですか?
どのように解決するのですか?
環境の指定には2つの形式があります。単一の変数を指定する場合は、以下のようになります。
ENV X Y
これはXを
Y
ENV X Y Z
これはXを
Y Z
もし複数の環境変数を割り当てる必要がある場合は、他の形式を使用します。
ENV X=Y Z=A
これはXを
Y
として割り当てられ、Z は
A
. つまり、あなたの
Dockerfile
は
FROM alpine:3.6
ENV RUBY_MAJOR=2.4 \
RUBY_VERSION=2.4.1 \
RUBY_DOWNLOAD_SHA256=4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \
RUBYGEMS_VERSION=2.6.12 \
BUNDLER_VERSION=1.15.3
RUN env
関連
-
[解決済み] Dockerfileを使って複数のファイルを1階層でコピーするには?
-
[解決済み] dockerでビルド中に環境変数を設定する方法
-
[解決済み] Dockerコンテナに環境変数を渡すにはどうしたらいいですか?
-
[解決済み] Dockerfileで、PATH環境変数を更新するには?
-
[解決済み】Dockerfileで環境変数の値を取得する
-
[解決済み】docker composeで環境変数を使用する方法
-
[解決済み】Dockerfileの複数RUNと1つの連鎖RUN、どっちがいい?
-
[解決済み] Dockerの実行と作成
-
[解決済み] Dockerのコピーと所有者の変更
-
[解決済み] 同じプロジェクトで、ビルドごとに異なる .dockerignore ファイルを指定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker-composeでDockerコンテナに固定IPを提供する
-
[解決済み] Dockerがコンテキスト外のシンボリックリンクをフォローする
-
[解決済み] Docker CMDを複数回使用して、複数のサービスを実行することができないのはなぜですか?
-
[解決済み] CentOS7 と docker devmapper でのスペース問題
-
[解決済み] docker-compose build` と `docker build` の違いは何ですか?
-
[解決済み] docker-composeで起動した実行中のコンテナにリンクできない
-
[解決済み] docker execで2つのコマンドを実行する方法
-
[解決済み] Dockerにマウントされたボリュームは、Linuxスタイルのパスから変換する際にWindowsパスの最後に;Cを追加します。
-
[解決済み] Dockerです。CLIで --password を使用するのは安全ではありません。パスワードは-password-stdinを使用してください。
-
[解決済み] docker 1.9+で名前付きボリュームの内容をリストアップするには?