# Docker Compose Modules

**URL:** <https://forum.inductiveautomation.com/t/docker-compose-modules/96878>\
**Category:** Ignition\
**Tags:** docker, vision\
**Created:** [October 6, 2024, 12:03pm UTC](https://forum.inductiveautomation.com/t/docker-compose-modules/96878 "2024-10-06T12:03:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gregory\_Grauwels](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@Gregory\_Grauwels](https://forum.inductiveautomation.com/u/Gregory_Grauwels)\
**Post date:** [October 6, 2024, 12:03pm UTC](https://forum.inductiveautomation.com/t/docker-compose-modules/96878/1 "2024-10-06T12:03:13Z")

</div>

Hi all,

I managed to load my docker with the 3rd party modules. Although, this results in only loading the 3rd party modules. I cant get the standard modules running anymore.. Any ideas what I'm doing wrong?

Here's my compose file:

```python
#https://www.docs.inductiveautomation.com/docs/8.1/platform/docker-image
#cd ~
#mkdir -p ~/ignition/modules
#chmod 777 ~/ignition/modules
#cd ~/ignition/modules
#example: wget https://files.inductiveautomation.com/third-party/cirrus-link/4.0.24/MQTT-Engine-signed.modl

version: '3.8'

services:
  ignition:
    container_name: ignition
    hostname: ignition
    image: inductiveautomation/ignition:latest
    restart: unless-stopped
    ports:
      - "9088:8088"
      - "9043:8043"
      - "62541:62541"
      - "1881:1883"
      - "8881:8883"
    volumes:
      - ignition-data:/usr/local/bin/ignition/data
      - /home/xxx/ignition/modules/:/usr/local/bin/ignition/user-lib/modules/ 
    environment:
      - ACCEPT_IGNITION_EULA=Y
      - GATEWAY_ADMIN_USERNAME=admin
      - GATEWAY_ADMIN_PASSWORD=admin
      - IGNITION_EDITION=standard
      - TZ=Europe/Amsterdam
      #- GATEWAY_MODULES_ENABLED=vision,enterprise-administration !!NOT WORKING!!
      #-IGNITION_LICENSE_KEY=
      #-IGNITION_ACTIVATION_TOKEN=
      #EAM setting?
      #Gateway Network?

      #automating the Restore of a Gateway Backup
    command:
      -n IG_Gateway
      -m 4096
      --
      wrapper.java.initmemory=1024
      -Dignition.allowunsignedmodules=true
    network_mode: bridge

#Secrets?

volumes:
  ignition-data:

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [October 6, 2024, 12:32pm UTC](https://forum.inductiveautomation.com/t/docker-compose-modules/96878/2 "2024-10-06T12:32:24Z")

</div>

When you mount a volume at a target in a container, the mount **replaces** the target if that target exists. (That's just how mounts work in the Unix world.) So, don't mount a folder over the built-in modules' folder. Consider mounting each **file** separately (though a bit tricky dealing with quarantine), or using a startup script to copy from a separate mount location.

---

<div class="post-metadata">

**Author:** ![woodsb02](https://avatars.discourse-cdn.com/v4/letter/w/6a8cbe/32.png) [@woodsb02](https://forum.inductiveautomation.com/u/woodsb02)\
**Post date:** [October 6, 2024, 10:27pm UTC](https://forum.inductiveautomation.com/t/docker-compose-modules/96878/3 "2024-10-06T22:27:21Z")

</div>

You should consider using the 3rd party module solution for docker described in the documentation:

> **[Docker Image | Ignition User Manual](https://docs.inductiveautomation.com/docs/8.1/platform/docker-image#integrate-third-party-modules-after-an-upgrade)**
>
> The Ignition Platform offers a container image for use on popular container runtimes such as Docker. You can find the image on Docker Hub at https://hub.docker.com/r/inductiveautomation/ignition. Our official image is a Linux container, based on...

---

<div class="post-metadata">

**Author:** ![Gregory\_Grauwels](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@Gregory\_Grauwels](https://forum.inductiveautomation.com/u/Gregory_Grauwels)\
**Post date:** [October 7, 2024, 5:28am UTC](https://forum.inductiveautomation.com/t/docker-compose-modules/96878/4 "2024-10-07T05:28:00Z")

</div>

stupid me 😊

Did the trick:

```
volumes:
  - ignition-data:/usr/local/bin/ignition/data
  - /home/xxx/ignition/modules/MQTT-Engine-signed.modl:/usr/local/bin/ignition/user-lib/modules/MQTT-Engine-signed.modl
  - /home/xxx/ignition/modules/MQTT-Transmission-signed.modl:/usr/local/bin/ignition/user-lib/modules/MQTT-Transmission-signed.modl

```
