Skip to content

[BUG] Environ settings ignored by upstream docker serviceΒ #317

@benfiedler

Description

@benfiedler

My setup

Formula version: latest master

Versions reports (master & minion)

Salt Version:
Salt: 3004.1

Pillar / config used

docker:
  pkg: 
    docker:
      daemon_config:
        insecure-registries:
          - my.repo.local:5000
      environ:
        - HTTP_PROXY=http://my.proxy.local:3128/
        - HTTPS_PROXY=http://my.proxy.local:3128/
        - NO_PROXY="localhost,127.0.0.1,.local"
      use_upstream:
        repo
  wanted:
    - docker

Bug details

Describe the bug

Hi,

I have recently switched over to using this formula, and it seems to work great except for one thing:

In my testing across recent *nixes (Debian-11 / Ubuntu-20.04 / CentOS Stream-8), the environ_file is unutilized by upstream packages and ignored by the docker systemd service.

Steps to reproduce the bug

salt 'mydockerminion01' state.apply docker.software
salt 'mydockerminion01' cmd.run "docker pull nginx:latest"

mydockerminion01:
    Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 52.200.78.26:443: connect: connection refused

Expected behaviour

Docker should be pulling images using the proxy

Attempts to fix the bug

I have come up with a simple fix to the formula which if an environ is defined on *nix, opts to create a drop-in docker.service.d/override.conf using states.ini_manage which is simply:

[Service]
EnvironmentFile = {{ environ_file }}

Detected changes to the dropin file will do a systemctl daemon-reload and also restart the service.
I also fixed service.running to enforce changes to the environ file by restarting the docker service.

My fork with fixes:
benfiedler@b131392

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions