前提・実現したいこと
anyenvをインストールしたコンテナを作成するDockerfileを書いています。
RUN exec $SHELL -l
とするとエラーが発生しました。
これが通らないと、以降anyenvコマンドが実行できないため困っています。
調べても有益な情報が見つけることができませんでした。
anyenvが実行できるようになるのであれば、方法は問わないです。
わかる方がいらっしゃれば、ご教示頂きたいです。
anyenvのインストール手順は、以下のサイトを参考にし、手動では最後まで成功しています
https://qiita.com/282Haniwa/items/71a48a10952413416d18
発生している問題・エラーメッセージ
=> [internal] load build definition from Dockerfile 0.1s => => transferring dockerfile: 483B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 0.0s => [1/7] FROM docker.io/library/ubuntu:latest 0.0s => CACHED [2/7] RUN apt update 0.0s => CACHED [3/7] RUN apt -y upgrade 0.0s => CACHED [4/7] RUN apt install -y sudo git 0.0s => CACHED [5/7] RUN git clone https://github.com/anyenv/anyenv ~/.anyenv 0.0s => ERROR [6/7] RUN exec $SHELL -l 0.4s ------ > [6/7] RUN exec $SHELL -l: #9 0.355 /bin/sh: 1: exec: -l: not found ------ executor failed running [/bin/sh -c exec $SHELL -l]: exit code: 127
該当のソースコード
FROM ubuntu:latest RUN apt update RUN apt -y upgrade RUN apt install -y sudo git RUN git clone https://github.com/anyenv/anyenv ~/.anyenv # RUN echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile ENV PATH $HOME/.anyenv/bin:$PATH # RUN echo 'eval "$(anyenv init -)"' >> ~/.bash_profile RUN exec $SHELL -l RUN anyenv install --init # RUN exec $SHELL -l # RUN anyenv install nodenv # RUN exec $SHELL -l # WORKDIR /opt
試したこと
ENVでPATHを設定するところまでのImageを作成し、ビルドしてみました。
コンテナに入り以下手動で実行しました。
コンテナに入った直後、
echo $PATH
を実行すると、ENVで追加した環境変数は表示されませんでした。
その後、
exec $SHELL -l
を実行し、そのうえでもう一度
echo $PATH
を実行するとENVで追加した環境変数が表示されました。
なので
exec $SHELL -l
までの手順は成功しているようです
補足情報(FW/ツールのバージョンなど)
Docker version 20.10.7
他に必要な情報があれば教えていただければ調べて載せます
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/06 04:22