docker-compose args from shell

Viewed 9321

I want to build via the docker-compose an image that uses my private key for cloning private git repos.

More or less the compose becomes as follows:

   myservice:
     build:
      context: .
      args:
        RSA:  ~/.ssh/id_rsa

The above does not work, neither the following:

   myservice:
     build:
      context: .
      args:
        RSA: $(cat ~/.ssh/id_rsa)

The docker build command works just fine however in the form of

docker build --build-args RSA=$(cat ~/.ssh/id_rsa) -t myservice:latest
3 Answers

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

add ARGS in your Dockerfile like

ARGS RSA

For it to be read upon build

Related