docker-compose args from shell

You can use the same syntax with docker-compose build:

docker-compose build --build-arg RSA="$(cat ~/.ssh/id_rsa)"

Unfortunately, you can't use the build-args option with compose up or start... So you will need to build and then run using the --no-build option


One way to do it that will work when building all the services and also with up is to pass the SSH key data as an environnement variable like this:

env RSA=$(cat ~/.ssh/id_rsa) docker-compose build

And then you set the build args in the compose file like this:

myservice:
 build:
  context: .
  args:
    RSA: |-
      ${RSA}