Merge "Add possibility to specify Compose file version"
diff --git a/README.rst b/README.rst
index ef6b711..1b2f875 100644
--- a/README.rst
+++ b/README.rst
@@ -33,6 +33,22 @@
             max-size: 50m
 
 
+Configure proxy for docker host
+
+.. code-block:: yaml
+
+    docker:
+      host:
+        proxy:
+          enabled: true
+          http: http://user:pass@proxy:3128
+          https: http://user:pass@proxy:3128
+          no_proxy:
+            - localhost
+            - 127.0.0.1
+            - docker-registry
+
+
 Docker Swarm
 ------------
 
diff --git a/docker/files/http-proxy.conf b/docker/files/http-proxy.conf
new file mode 100644
index 0000000..13d494d
--- /dev/null
+++ b/docker/files/http-proxy.conf
@@ -0,0 +1,5 @@
+{%- from "docker/map.jinja" import host with context -%}
+[Service]
+Environment="HTTP_PROXY={{ host.proxy.http }}"
+Environment="HTTPS_PROXY={{ host.proxy.https }}"
+Environment="NO_PROXY={{ host.proxy.no_proxy|join(',') }}"
diff --git a/docker/host.sls b/docker/host.sls
index 81d6344..dbd2cc0 100644
--- a/docker/host.sls
+++ b/docker/host.sls
@@ -38,6 +38,33 @@
   - watch_in:
     - service: docker_service
 
+{%- if host.get('proxy', {}).get('enabled') %}
+{%- if host.proxy.get('http') or host.proxy.get('https') or host.proxy.get('no_proxy') %}
+
+/etc/systemd/system/docker.service.d/http-proxy.conf:
+  file.managed:
+  - source: salt://docker/files/http-proxy.conf
+  - template: jinja
+  - makedirs: True
+  - require_in:
+    - service: docker_service
+
+{% else %}
+
+/etc/systemd/system/docker.service.d/http-proxy.conf:
+  file.absent
+
+{%- endif %}
+
+systemd_reload_due_proxy:
+  module.run:
+    - name: service.systemctl_reload
+    - onchanges:
+      - file: /etc/systemd/system/docker.service.d/http-proxy.conf
+
+{%- endif %}
+
+
 docker_service:
   service.running:
   - name: {{ host.service }}
diff --git a/docker/meta/sphinx.yml b/docker/meta/sphinx.yml
index 15f4ce3..f4571d3 100644
--- a/docker/meta/sphinx.yml
+++ b/docker/meta/sphinx.yml
@@ -7,7 +7,7 @@
       name: host
       param:
         version:
-          value: "{{ salt['cmd.run']('docker --version') }}"
+          value: "{{ salt['cmd.shell']('docker --version', python_shell=True) }}"
     {%- endif %}
     {%- if pillar.docker.swarm is defined %}
     {%- from "docker/map.jinja" import swarm with context %}
diff --git a/tests/pillar/host_single_proxy.sls b/tests/pillar/host_single_proxy.sls
new file mode 100644
index 0000000..516e970
--- /dev/null
+++ b/tests/pillar/host_single_proxy.sls
@@ -0,0 +1,18 @@
+docker:
+  host:
+    enabled: true
+    options:
+      bip: 192.168.0.1/24
+      log-driver: json-file
+      log-opts:
+        size: 50m
+      insecure-registry:
+      - srv01
+      - srv02
+      - srv03
+    proxy:
+      http: http://proxy:3128
+      https: http://[::1]:3128
+      no_proxy:
+        - local1
+        - local2