LoginSignup
0
0

More than 1 year has passed since last update.

【Docker】mount=type=cacheの使い方【Rails】

Posted at

Dockerfile

Rails環境用のDockerfileで$GEM_HOME--mount=type=cacheを設定するには以下のようにします。

...

WORKDIR /home/${USER_NAME}/${PROJECT_NAME}
COPY --chown=${USER_NAME} Gemfile* /home/${USER_NAME}/${PROJECT_NAME}/
RUN --mount=type=cache,uid=1000,target=/home/${USER_NAME}/.cache/bundle <<-EOF
  set -e
  GEM_HOME=/home/${USER_NAME}/.cache/bundle bundle install
  cp -aRT /home/${USER_NAME}/.cache/bundle ${GEM_HOME}
EOF

...

一度~/.cache/bundleにインストールしてから$GEM_HOMEにコピーします。

  • GEM_HOME=/home/${USER_NAME}/.cache/bundle bundle install
    GEM_HOMEを一時的に変更してbundle install

  • cp -aRT /home/${USER_NAME}/.cache/bundle ${GEM_HOME}
    -aはサブディレクトリや属性なども含め、可能な限りすべてを保持しながらコピーする。
    -Rはコピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする。
    -Tはコピー先(最後の引数)がディレクトリでも特別扱いしない。

0
0
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
0
0