I’m migrating our home grown solution to use the new multi-container support of Resin. Previously we were running multiple apps from a single docker file.
One of the things that we did was setup a loopback within our network-manager container. While this worked fine in our solution, we are hitting major issues inside of a container. We get a simple error “Failed to configure loopback device: Permission denied”. We are running in privileged mode, we are using the exact same code.
Below are our compose file and relevant Docker File:
Compose:
version: '2'
services:
machine-comm:
privileged: true
restart: always
build: machineComms
ports:
- "81:81"
network-manager:
privileged: true
restart: always
labels:
io.resin.features.dbus: '1'
build: networkManager
ports:
- "80:80"
front-end:
privileged: true
restart: always
build: frontEnd
ports:
- "8080:80"
Docker File
FROM resin/%%RESIN_MACHINE_NAME%%-golang:slim
ENV INITSYSTEM on
ENV PORT 8080
ENV DBUS_SYSTEM_BUS_ADDRESS /host/run/dbus/system_bus_socket
ENV HOTSPOT_UUID 349b60d6-0528-11e8-ba89-0ed5f89f718b
ENV HOTSPOT_INTERFACE wlan0
ENV HOTSPOT_PSK wmaHOTSpot
ENV HOTSPOT_IP 10.0.0.1
ENV HOTSPOT_PREFIX 24
WORKDIR /go/src/network-manager-server
COPY . ./
RUN go build server.go
CMD ./server -reset
This seems to have mostly impacted our routing of HTTP requests to each other. Does this problem solve itself if we start using Docker’s built in container to container messaging?