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.

  • Kitematic Setup Error Docker
  • SBT Docker ADD file not found
  • Wget numeric pattern in Dockerfile
  • Mount volume to Docker image on OSX
  • Link images on Docker Hub
  • How to configure multiples ips for apps in docker
  • Is this possible?

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

  • How can I create containers at time of instance creation from my project container images
  • Docker's --memory switch does not work as expected
  • how does docker handle file creation?
  • Creating a Docker Image for a Github Project
  • On Windows how the docker host connect to docker containers?
  • where is the systemout log of websphere on docker?
  • 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.