Dockerを習得中です。
rbenvのパスを通すために、Dockerfileに記述したsouceコマンド
RUN ["/bin/bash", "-c", "source ~/.bash_profile"]
がうまく実行されません。
調べてみると、dockerfileの中では、sourceコマンドが実行できないという情報やsourceコマンドはshではなくbashで実行させる必要があるといった情報があり、色々試していますが、うまくいきません。
ただ、起動中のコンテナにbashで入ってsourceコマンドを実行すると、正常に実行されます。
何が原因なのでしょうか?
dockerfile(Rails環境を構築しようとしてます)
dockerfile
1FROM centos:7.7.1908 2 3ENV LANG C.UTF-8 4ENV TZ Asia/Tokyo 5 6RUN yum -y update 7RUN yum install -y git tzdata libxml2-devel.x86_64 libcurl-devel.x86_64 gcc-c++.x86_64 glibc-devel.x86_64 mariadb-devel.x86_64 ImageMagick.x86_64 bzip2 make rubygems 8 9RUN git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv 10RUN git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build 11 12 13RUN echo 'export RBENV_ROOT="/usr/local/rbenv"' >> ~/.bash_profile 14RUN echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> ~/.bash_profile 15RUN echo 'eval "$(rbenv init --no-rehash -)"' >> ~/.bash_profile 16# 上記までは正常。以下は試したコマンド 17RUN ["/bin/bash", "-c", "source ~/.bash_profile"] 18SHELL ["/bin/bash", "-c", "source ~/.bash_profile"] 19RUN /bin/sh -c "source ~/.bash_profile" 20 21RUN source /etc/profile.d/rbenv.sh; gem update --system 2.7.10; gem install bundler; gem install -v 5.2.4 rails --no-document
docker-compose.yml
version: '3' services: rails: build: . tty: true volumes: - .:/var/www working_dir: /var/www command: > sh -c "sh" ports: - '5000:3000'
参考記事
Dockerfileでsourceを使う。というかbashを使う for installing chainer-cv - Bag of ML Words
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。