diff --git a/.gitignore b/.gitignore
index 20a30ab1f..bfa6b1372 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ imagebuild/coreos/UPLOAD
 _build
 doc/source/api/
 doc/build
+.proxy.sh.save
 
 # release notes build
 releasenotes/build
diff --git a/Dockerfile b/Dockerfile
index 585f2ce83..a3c27367a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,22 +5,30 @@ FROM debian:jessie
 # different it will not cache this layer
 ADD . /tmp/ironic-python-agent
 
+# Copy the proxy.sh script which copies the proxy settings from the host
+# environment (if they are set). This file will be dynamically created by
+# imagebuild/coreos/docker_build.bash
+# TODO(jlvilla): Once Docker 1.9 is widely deployed, switch to using the 'ARG'
+# command which was added in Docker 1.9. Currently Ubuntu 14.04 uses Docker
+# 1.6. Using the ARG command will be a much cleaner solution.
+COPY proxy.sh /usr/bin/proxy.sh
+
 # Add 'testing' for qemu-utils
 RUN echo 'APT::Default-Release "jessie";' > /etc/apt/apt.conf.d/10default && \
     sed -e 's/jessie/testing/g' /etc/apt/sources.list > /etc/apt/sources.list.d/testing.list
 
 # Install requirements: Python for ironic-python-agent, others for putting an
 # image on disk
-RUN apt-get update && \
-    apt-get -y upgrade && \
-    apt-get install -y --no-install-recommends gdisk python2.7 python2.7-dev \
+RUN proxy.sh apt-get update && \
+    proxy.sh apt-get -y upgrade && \
+    proxy.sh apt-get install -y --no-install-recommends gdisk python2.7 python2.7-dev \
         python-pip qemu-utils parted hdparm util-linux genisoimage git gcc \
         bash coreutils tgt dmidecode ipmitool && \
-    apt-get --only-upgrade -t testing install -y qemu-utils
+    proxy.sh apt-get --only-upgrade -t testing install -y qemu-utils
 
 # Some cleanup
-RUN apt-get -y autoremove && \
-    apt-get clean
+RUN proxy.sh apt-get -y autoremove && \
+    proxy.sh apt-get clean
 
 # Before cleaning mark packages that are required so they are not removed
 RUN apt-mark manual python-setuptools
@@ -28,18 +36,18 @@ RUN apt-mark manual python-minimal
 
 # Install requirements separately, because pip understands a git+https url
 # while setuptools doesn't
-RUN pip install --upgrade pip
-RUN pip install --no-cache-dir -r /tmp/ironic-python-agent/requirements.txt
+RUN proxy.sh pip install --upgrade pip
+RUN proxy.sh pip install --no-cache-dir -r /tmp/ironic-python-agent/requirements.txt
 
 # This will succeed because all the dependencies were installed previously
-RUN pip install --no-cache-dir /tmp/ironic-python-agent
+RUN proxy.sh pip install --no-cache-dir /tmp/ironic-python-agent
 
 # Remove no longer needed packages
 # NOTE(jroll) leave git to avoid strange apt issues in downstream Dockerfiles
 # that may inherit from this one.
-RUN apt-get -y purge gcc-4.6 gcc python2.7-dev && \
-    apt-get -y autoremove && \
-    apt-get clean
+RUN proxy.sh apt-get -y purge gcc-4.6 gcc python2.7-dev && \
+    proxy.sh apt-get -y autoremove && \
+    proxy.sh apt-get clean
 RUN rm -rf /tmp/ironic-python-agent
 RUN rm -rf /var/lib/apt/lists/*
 
diff --git a/imagebuild/coreos/docker_build.bash b/imagebuild/coreos/docker_build.bash
index f3c747696..9386ef677 100755
--- a/imagebuild/coreos/docker_build.bash
+++ b/imagebuild/coreos/docker_build.bash
@@ -16,7 +16,24 @@ fi
 
 # Build the docker image
 cd ../../
+
+# TODO(jlvilla): Once Docker 1.9 is widely deployed, switch to using the 'ARG'
+# command which was added in Docker 1.9. Currently Ubuntu 14.04 uses Docker
+# 1.6. Using the ARG command will be a much cleaner solution.
+mv proxy.sh .proxy.sh.save || true
+# Create a temporary proxy.sh script, that will be used by the Dockerfile.
+# Since we are calling 'docker build' we can not use --env-file/--env as those
+# are arguments to 'docker run'
+echo '#!/bin/sh' > proxy.sh
+echo 'echo Running: $*' >> proxy.sh
+echo "http_proxy=${http_proxy:-} https_proxy=${https_proxy:-} no_proxy=${no_proxy:-} "'$*' >> proxy.sh
+chmod 0755 proxy.sh
+
 docker build -t oemdocker .
+
+# Restore saved copy
+mv .proxy.sh.save proxy.sh || true
+
 cd -
 
 # Create a UUID to identify the build
diff --git a/proxy.sh b/proxy.sh
new file mode 100755
index 000000000..87af438b3
--- /dev/null
+++ b/proxy.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Have things work for users who didn't run with the
+# imagebuild/coreos/docker_build.bash script
+
+$*