How can I pass build args with a remote image in docker-compose.yml?

I would like to pull a remote image from a private registry. The image’s dockerfile contains some args whose values would be populated via docker-compose.yml. For example:

version: '3.0'

services:
    api:
        image: remoteApiImage
    web:
        image: remoteWebImage
        build: 
            args:
                baseurl: http://remoteApiImage:80

Currently, this does not work as build requires a context. However, if I set a context, it expects a local Dockerfile. Even setting to . without a local Dockerfile will pull the remote image, but the build args are not passed properly.

  • TCP receives packets, but it ignores them
  • Cannot read docker container logs: Permission denied
  • Creating a Private Docker Registry with Authentication
  • x509 certificate signed by unknown authority on Docker 1.3.2 rhel 7 host
  • build Docker images from GitLab
  • Refer to another service/task running in same ECS cluster
  • Is this possible?

    Note: I am using Windows Server 2016 containers. Not sure that is relevant to the issue.

  • Invoke Docker Remote API using Java
  • Dynamically start new Docker containers when needed?
  • Remote debugging path mapping
  • Docker volume conflict
  • Can't npm install dependencies when building docker image
  • Docker container stuck after enter in container
  • One Solution collect form web for “How can I pass build args with a remote image in docker-compose.yml?”

    As johnharris85 comment suggests, what you are trying to do is not possible. You cannot pull and image and then rebuild it (without the Dockerfile).

    If you are trying to specify arguments to an image then you would d this via environment variables. Otherwise, if you have the sources Dockerfile for the image, you can use the ARG function to specify arguments while rebuilding it yourself.

    build and image in the docker-compose.yml context are mutually exclusive.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.