Docker build argument

How does one pass arguments into a dockerfile?

Lets say I have the dockerfile:

  • libcurl with ares on ubuntu 14.04
  • Docker passing environment variable
  • When dockerizing a rails app with EC2 container service with ELB do I still need nginx?
  • Jmeter and Docker
  • Installing Jenkins Plugins to Docker Jenkins
  • docker-machine inside Symfony Process
  • FROM    ubuntu:14.04
    
    MAINTAINER Karl Morrison
    
    sudo do-something-here myVarHere
    

    I would want to build the file as so for example:

    docker build basickarl/my-image-example /directory/of/my/dockerfile "my string to be passed to myVarHere here!"
    

  • Docker: How to save running instance?
  • Docker container exits immediately
  • Jupyter Spark database access; java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  • Host volumes / environment variables not available during container build stage
  • Why am I getting NATed when talking to other Docker containers within the same bridge network
  • Unable to access Kubernetes UI
  • 2 Solutions collect form web for “Docker build argument”

    Docker has ARG that you can use here

    FROM    ubuntu:14.04
    
    MAINTAINER Karl Morrison
    
    ARG myVarHere
    
    RUN do-something-here myVarHere
    

    And then build using --build-arg:

    docker build --build-arg myVarHere=value
    

    We’ve had a similar requirement and came up with a relatively simple script that does exactly that:

    We create a file called dockerfile_template in which we use variables just like you describe. The script takes that file, performs string substitutions and copies it to dockerfile (no _template) before calling docker build dockerfile.

    Works pretty good. Also very extensible for future requirements.

    Update:

    Scrap that. Use build-arg (here)

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