2023-05-26

How can I make environment variables available during Docker build for a Rails 7 app with MRSK?

I'm trying to build and deploy a rails 7 app with MRSK. The docker build process needs different environment variables for bundling gems, installing yarn packages, etc.

My deploy.yml contains following information:

env:
  secret:
    - GITLAB_TOKEN

builder:
  secrets:
    - GITLAB_TOKEN
  args:
    RUBY_VERSION: 3.2.2
  multiarch: false

The .env-file:

GITLAB_TOKEN='test'

In my Dockerfile I've tried following:

RUN echo  "$GITLAB_TOKEN"

RUN --mount=type=secret,id=GITLAB_TOKEN
RUN cat /run/secrets/GITLAB_TOKEN

But the environment is in both cases empty.


I've found a workaround by using args instead of environments in the deploy.yml:

builder:
  args:
    GITLAB_TOKEN: "<%= ENV['GITLAB_TOKEN'] %>"

But args are not masked secret and using erb-text in a yml-file seems very ugly. This also may not work for non rails-applications.



No comments:

Post a Comment