5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CircleCI】【Rails】【Docker】ArgumentError: key must be 16 bytes

Last updated at Posted at 2020-07-23

assets:precompileで、ArgumentError: key must be 16 bytesが発生

Dockerfile.rails
ARG RAILS_MASTER_KEY
ENV RAILS_MASTER_KEY ${RAILS_MASTER_KEY}

**略

RUN bundle exec rails assets:precompile # 問題の箇所

以下、エラー写真
スクリーンショット 2020-07-23 12.01.38.png
スクリーンショット 2020-07-23 12.01.49.png

対処内容

ローカル環境でdocker buildしてみても同様のエラーは発生しなかったので、値の受け渡しに問題ありと仮説。

.circleci/config.yml
version: 2.1 
orbs:
  aws-ecr: circleci/aws-ecr@6.10.0
workflows:
  lint_and_test_and_ecr_push:
    jobs:
      - aws-ecr/build-and-push-image:
          account-url: AWS_ECR_ACCOUNT_URL_ENV_VAR_NAME_RAILS
          aws-access-key-id: ACCESS_KEY_ID_ENV_VAR_NAME
          aws-secret-access-key: SECRET_ACCESS_KEY_ENV_VAR_NAME
          dockerfile: Dockerfile
          no-output-timeout: 20m
          extra-build-args: "--build-arg RAILS_MASTER_KEY=${RAILS_MASTER_KEY}" # これが抜けていた…
          path: .
          region: AWS_REGION_ENV_VAR_NAME
          repo: repo-name
          filters:
            branches:
              ignore:
                - master

そもそも--build-argについて知見がなかったのが敗因。よく勉強しましょう。

DockerfileARGを指定してdocker buildの際に指定できる引数を宣言しても、中身を持ってこなければ意味がない。

イメージ

  • CircleCIの環境変数に値をセット
  • .circleci/config.ymlでDockerfileで展開する変数RAILS_MASTER_KEYを指定して、その変数にCircleCIで設定した環境変数RAILS_MASTER_KEYを代入
  • DockerfileのARG(RAILS_MASTER_KEY)がCircleCIで設定した環境変数の値を持った変数として機能する
  • DockerfileでENV(RAILS_MASTER_KEY)にARGで機能した変数RAILS_MASTER_KEYを代入することで、コンテナ内での環境変数(RAILS_MASTER_KEY)として機能する

参考

Dockerfile ARG入門
circleci/aws-ecr@6.10.0
Dockerfileの"ENV"と"ARG"と"環境変数"について
Rails 5.2 + Docker, RAILS_MASTER_KEYをイメージ作成時に動的に入れる方法

5
2
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
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?