1
0
Fork 0
mirror of https://github.com/louislam/dockge.git synced 2026-03-03 02:06:55 -05:00

Mac Address Parameter Ignored in Compose File #67

Open
opened 2026-02-20 13:10:16 -05:00 by deekerman · 7 comments
Owner

Originally created by @paulrobinsontkd on GitHub (Dec 11, 2023).

⚠️ Please verify that this bug has NOT been reported before.

  • I checked and didn't find similar issue

🛡️ Security Policy

Description

I am deploying a number of containers all of which have a static mac address assigned so that i can create firewall rules and allow access to various devices and internet.

The compose i am using is detailed as below

version: "3.8"
services:
  pihole0:
    container_name: pihole0
    build:
      context: /share/docker/build/pihole/
      dockerfile: /share/docker/build/pihole/Dockerfile
    image: mypihole/pihole-unbound:latest
    hostname: pihole0
    domainname: lan.prcomputers.co.uk
    mac_address: 02:42:df:bb:cf:e1
    ports:
      - 443:443/tcp
      - 53:53/tcp
      - 53:53/udp
      - 80:80/tcp
      - 2222:2222/tcp
      - 9167:9167/tcp
    environment:
      .....
    networks:
      qnet-static-eth4:
        ipv4_address: 
    volumes:
      - /share/docker/volumes/pihole0/config/pihole:/etc/pihole/
      - /share/docker/volumes/pihole0/config/dnsmasq.d:/etc/dnsmasq.d/
      - /share/docker/volumes/pihole0/config/gravity-sync/:/config/gravity-sync/
    restart: unless-stopped
networks:
  qnet-static-eth4:
    external: true

When i run an inspect on the container the mac address is different from that in the compose file

"NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7",
                    "EndpointID": "ecb2a0603762b97355671c7057712020b1c9a4685199df5aa3cea5f393761610",
                    "Gateway": "XXXXXXXXXX",
                    "IPAddress": "XXXXXXXXXX",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:a5:12:6b:d8",
                    "DriverOpts": null

If i restart the container the mac address changes but should remain static to what is set in compose file

                    "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7",
                    "EndpointID": "32e43880c270bbd62eb09cf9c91dc77490f59846c388a70c3dada6019246c3d7",
                    "Gateway": "192.168.10.1",
                    "IPAddress": "192.168.10.200",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:4f:e1:3a:97",
                    "DriverOpts": null

This code was lifted from an existing deployment which worked without issue and kept the same mac address when i deployed directly with docker compose

👟 Reproduction steps

Created compose file with mac_address parameter
Deployed container
Checked mac_address with docker inspect pihole0

👀 Expected behavior

The mac address should remain static when specified in compose file and between docker restarts

😓 Actual Behavior

The mac address changes each time contain is restarted

Dockge Version

1.2.0

💻 Operating System and Arch

Linux qnap 5.10.60-qnap #1 SMP Tue Sep 26 01:46:28 CST 2023 x86_64 GNU/Linux

🌐 Browser

N/A

🐋 Docker Version

Docker version 20.10.22-qnap7, build 57ed8b8

🟩 NodeJS Version

Unknown

📝 Relevant log output

No errors given when deployed
Originally created by @paulrobinsontkd on GitHub (Dec 11, 2023). ### ⚠️ Please verify that this bug has NOT been reported before. - [X] I checked and didn't find similar issue ### 🛡️ Security Policy - [X] I agree to have read this project [Security Policy](https://github.com/louislam/dockge/security/policy) ### Description I am deploying a number of containers all of which have a static mac address assigned so that i can create firewall rules and allow access to various devices and internet. The compose i am using is detailed as below ``` version: "3.8" services: pihole0: container_name: pihole0 build: context: /share/docker/build/pihole/ dockerfile: /share/docker/build/pihole/Dockerfile image: mypihole/pihole-unbound:latest hostname: pihole0 domainname: lan.prcomputers.co.uk mac_address: 02:42:df:bb:cf:e1 ports: - 443:443/tcp - 53:53/tcp - 53:53/udp - 80:80/tcp - 2222:2222/tcp - 9167:9167/tcp environment: ..... networks: qnet-static-eth4: ipv4_address: volumes: - /share/docker/volumes/pihole0/config/pihole:/etc/pihole/ - /share/docker/volumes/pihole0/config/dnsmasq.d:/etc/dnsmasq.d/ - /share/docker/volumes/pihole0/config/gravity-sync/:/config/gravity-sync/ restart: unless-stopped networks: qnet-static-eth4: external: true ``` When i run an inspect on the container the mac address is different from that in the compose file ``` "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7", "EndpointID": "ecb2a0603762b97355671c7057712020b1c9a4685199df5aa3cea5f393761610", "Gateway": "XXXXXXXXXX", "IPAddress": "XXXXXXXXXX", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:a5:12:6b:d8", "DriverOpts": null ``` If i restart the container the mac address changes but should remain static to what is set in compose file ``` "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7", "EndpointID": "32e43880c270bbd62eb09cf9c91dc77490f59846c388a70c3dada6019246c3d7", "Gateway": "192.168.10.1", "IPAddress": "192.168.10.200", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:4f:e1:3a:97", "DriverOpts": null ``` This code was lifted from an existing deployment which worked without issue and kept the same mac address when i deployed directly with docker compose ### 👟 Reproduction steps Created compose file with mac_address parameter Deployed container Checked mac_address with docker inspect pihole0 ### 👀 Expected behavior The mac address should remain static when specified in compose file and between docker restarts ### 😓 Actual Behavior The mac address changes each time contain is restarted ### Dockge Version 1.2.0 ### 💻 Operating System and Arch Linux qnap 5.10.60-qnap #1 SMP Tue Sep 26 01:46:28 CST 2023 x86_64 GNU/Linux ### 🌐 Browser N/A ### 🐋 Docker Version Docker version 20.10.22-qnap7, build 57ed8b8 ### 🟩 NodeJS Version Unknown ### 📝 Relevant log output ```shell No errors given when deployed ```
Author
Owner

@paulrobinsontkd commented on GitHub (Dec 11, 2023):

Realised i was not on latest version of Dockge v1.3.3

Deployed latest version of dockge from v1.2.0 and issue is no longer present and container keeps static mac address as per parameter.

@paulrobinsontkd commented on GitHub (Dec 11, 2023): Realised i was not on latest version of Dockge v1.3.3 Deployed latest version of dockge from v1.2.0 and issue is no longer present and container keeps static mac address as per parameter.
Author
Owner

@paulrobinsontkd commented on GitHub (Dec 12, 2023):

Tried again this morning and redeployed same container from Dockge and it was given a new mac address.

Deployed with compose directly from OS and it was given the correct mac address so something is still not right

@paulrobinsontkd commented on GitHub (Dec 12, 2023): Tried again this morning and redeployed same container from Dockge and it was given a new mac address. Deployed with compose directly from OS and it was given the correct mac address so something is still not right
Author
Owner

@louislam commented on GitHub (Dec 12, 2023):

I think you should reconfirm this, because Dockge is just running a command "docker compose up -d" for you. Nothing special.

It could be a bug of docker compose v2.

@louislam commented on GitHub (Dec 12, 2023): I think you should reconfirm this, because Dockge is just running a command "docker compose up -d" for you. Nothing special. It could be a bug of docker compose v2.
Author
Owner

@paulrobinsontkd commented on GitHub (Dec 12, 2023):

I have just created a new grafana container in Dockge and deployed using the following compose

version: "3.5"
services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    mac_address: 02:42:19:19:c3:c8
    ports:
      - 3000:3000
    networks:
      qnet-static-eth4:
        ipv4_address: XXXXXXXXXXXXXXXXXXX
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=XXXXXXXXXXXXX
    volumes:
      - data:/var/lib/grafana
      - config:/etc/grafana
    restart: unless-stopped
    labels:
      - com.centurylinklabs.watchtower.enable=true
networks:
  qnet-static-eth4:
    external: true
volumes:
  data:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /share/docker/volumes/grafana/data
  config:
    driver: local
    driver_opts:
      o: bind
      type: none
      device: /share/docker/volumes/grafana/config

When i run a docker inspect the mac address is not the same as the parameter specified

                    ],
                    "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7",
                    "EndpointID": "6ab18cf070c5cf0ae7c255d570b09bf19f4d3f2df293a5b261ee48bac27b2a0d",
                    "Gateway": "192.168.10.1",
                    "IPAddress": "192.168.10.205",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    **"MacAddress": "02:42:ff:4b:ea:8c",**
                    "DriverOpts": null
                }
            }

If i then delete and recreate the container from the OS using the compose file generated by dockge i have no issues

[admin@qnap ~]# docker stop grafana
[admin@qnap ~]# docker rm grafana
[admin@qnap ~]# cd /share/docker/stacks/grafana
[admin@qnap grafana]# docker compose -f compose.yaml up -d
[+] Running 1/1
 ⠿ Container grafana  Started

[admin@qnap grafana]# docker inspect grafana

                    "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7",
                    "EndpointID": "5aaec3e574af14fe06792b439b11e3a3c4df47139dbd1f806ee2ed115382fcd9",
                    "Gateway": "192.168.10.1",
                    "IPAddress": "192.168.10.205",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    **"MacAddress": "02:42:19:19:c3:c8",**
                    "DriverOpts": null
                }
            }
        }
    }
]

So something is not right for me when i deploy using Dockge as the mac_address is not being configured to what i use in compose file. I can deploy from OS and everything works correctly but it kind of defeats the object of me using Dockge

@paulrobinsontkd commented on GitHub (Dec 12, 2023): I have just created a new grafana container in Dockge and deployed using the following compose ``` version: "3.5" services: grafana: image: grafana/grafana:latest container_name: grafana mac_address: 02:42:19:19:c3:c8 ports: - 3000:3000 networks: qnet-static-eth4: ipv4_address: XXXXXXXXXXXXXXXXXXX environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=XXXXXXXXXXXXX volumes: - data:/var/lib/grafana - config:/etc/grafana restart: unless-stopped labels: - com.centurylinklabs.watchtower.enable=true networks: qnet-static-eth4: external: true volumes: data: driver: local driver_opts: o: bind type: none device: /share/docker/volumes/grafana/data config: driver: local driver_opts: o: bind type: none device: /share/docker/volumes/grafana/config ``` When i run a docker inspect the mac address is not the same as the parameter specified ``` ], "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7", "EndpointID": "6ab18cf070c5cf0ae7c255d570b09bf19f4d3f2df293a5b261ee48bac27b2a0d", "Gateway": "192.168.10.1", "IPAddress": "192.168.10.205", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, **"MacAddress": "02:42:ff:4b:ea:8c",** "DriverOpts": null } } ``` If i then delete and recreate the container from the OS using the compose file generated by dockge i have no issues ``` [admin@qnap ~]# docker stop grafana [admin@qnap ~]# docker rm grafana [admin@qnap ~]# cd /share/docker/stacks/grafana [admin@qnap grafana]# docker compose -f compose.yaml up -d [+] Running 1/1 ⠿ Container grafana Started [admin@qnap grafana]# docker inspect grafana "NetworkID": "a4b2f965df64726ab956f048f258593f6561eb465030e441c6201df7c767dae7", "EndpointID": "5aaec3e574af14fe06792b439b11e3a3c4df47139dbd1f806ee2ed115382fcd9", "Gateway": "192.168.10.1", "IPAddress": "192.168.10.205", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, **"MacAddress": "02:42:19:19:c3:c8",** "DriverOpts": null } } } } ] ``` So something is not right for me when i deploy using Dockge as the mac_address is not being configured to what i use in compose file. I can deploy from OS and everything works correctly but it kind of defeats the object of me using Dockge
Author
Owner

@louislam commented on GitHub (Dec 12, 2023):

Should be an upstream bug: https://github.com/docker/compose/issues/11041

What is your docker compose version on your host?

docker compose version

Edit: They said it has been fixed, but haven't release it yet. I will update it once they released the fixed.

At this moment, you should keep using your host's docker-compose and don't update it.

@louislam commented on GitHub (Dec 12, 2023): Should be an upstream bug: https://github.com/docker/compose/issues/11041 What is your docker compose version on your host? `docker compose version` Edit: They said it has been fixed, but haven't release it yet. I will update it once they released the fixed. At this moment, you should keep using your host's docker-compose and don't update it.
Author
Owner

@paulrobinsontkd commented on GitHub (Dec 12, 2023):

[admin@qnap grafana]# docker compose version
Docker Compose version v2.14.1-qnap1

@paulrobinsontkd commented on GitHub (Dec 12, 2023): [admin@qnap grafana]# docker compose version Docker Compose version v2.14.1-qnap1
Author
Owner

@louislam commented on GitHub (Dec 12, 2023):

Yes, your version is older.

Dockge is using the newer version 2.21.0 which contains this bug.

We should wait until they released the bug fix.

@louislam commented on GitHub (Dec 12, 2023): Yes, your version is older. Dockge is using the newer version 2.21.0 which contains this bug. We should wait until they released the bug fix.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/dockge-louislam#67
No description provided.