Search code examples
dockerdockerfilesynology

How do I make Synology Diskstation port visible to computer for Docker app


I have a Docker app running on a Synology DS218+

But the app runs on port 4567 not visible from my PC (I can access Synology DSM on port 5000 from my PC okay).

How do I resolve this, I am not clear whether I have to configure something in the Docker container or within Synology DSM Control Panel itself. The Synology is brand new, with only the defaults and Docker installed, I have not enabled the Synology Firewall.

The DockerFile is

FROM openjdk:8-jre-alpine

RUN apk add --no-cache ca-certificates curl tini \
 && mkdir -p /opt \
 && curl http://www.jthink.net/songkong/downloads/current/songkong-linux-headless-novm.tgz?val=77 | tar -C /opt -xzf - \
 && find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x

RUN addgroup -S songkong \
 && adduser -S -G songkong songkong

USER songkong:songkong

EXPOSE 4567

ENTRYPOINT ["/sbin/tini"]

# VOLUME /opt/songkong/songkong.properties

# preferences and match database are stored here
VOLUME /home/songkong/.songkong

WORKDIR /opt/songkong

CMD /opt/songkong/songkongremote8.sh

Solution

  • Turned out to be easy to do

    • Launch Image
    • Select Advanced Settings
    • Go to Network tab
    • Enable Use the same network as Docker host
    • Apply setting and continue to launch Container

    Does seem to me this should be enabled by default since running a container with Synology invisible to any computer outside of Synology doesnt seem very useful

    There is also a more flexible but more slightly complex solution using the Port Forwarding tab.