From Synology to Docker

Currently reading
From Synology to Docker

Last edited:
But still.. at least it's not completly broken anymore.
I just launched a 3.7 compose config from the web editor.

Portainer must have fixed in on their side.. since the docker package did not receive any updates since then. I still have the good old 0513 installed where stack creation failed in the past.

Oh, there is a new version since 28th december 20: Synology Archive Download Site - Index of /download/Package/Docker/18.09.0-0515
Did you upload docker-compose.yml or did you use the web editor?
I used the upload method since I had tried and validated my compose.yml files from command line but I wanted to be able to manage everything (almost) through portainer instead of the CLI
Did you try to run the container with user: ${UID}:${PID}? This declaration allows Docker to replace the id's for the first declared USER, which is USER 1000:1000 for drakkan/sftpgo. Though, the original declaration already has id's instead of a username:groupname, so I am not 100% certain the `user:` declaration realy works with this image.

Hmm, SFTP behind a reverse proxy? Afaik SFTP piggy backs on SSH, while FTPS would be SSL/TLS wrapped FTP. The fist one should be ideal for containers, as it only needs a single port, while the later would require a a controll port and a huge range for the passv data ports, which would realy suck with containers. Glad you found a solution!

Congratz for managing your endeavor so well so far :)
Thought I'd revisit this.
Running with:
Still returns:
sftpgo@23914c8c9ba2:~$ id
uid=1000(sftpgo) gid=1000(sftpgo) groups=1000(sftpgo)
Here was the issue thread I found which caused me to follow the steps I did to create my own local version (It's also where the other 2 environmental variables came from as well):
However when I use the console on the container I don't have permission to access my files. :(
Uhm, user: is actualy a sibling element to environment, image,.... This is a docker specific configuration, which applies for all images using the USER directive.

Or does the image specificly define the env USER to declare the UID/GID? This must be implemented in the entrypoint script of the image to actualy have any effect. Also, I assume you declared USERID und USERGROUP in your .env file?
Last edited:
@one-eyed-king Yes, USERID and USERGROUP are in my .env
So it should be:

Which appears to have worked!

Thank you!
Sadly PhotoStructure is single user currently.
Sure about that? There are both server and individual-PC versions. The server version appears to reference home directories, which I take to mean multiple users.
It's still in beta. When final is released they plan to have both free and subscription "service levels".
I decided to hold off on evaluating PhotoStructure until that final release. No point in putting time into it until I know what service level supports what I need to do - and whether I want to pay that much.
That said, it's not really a replacement for Photo Station, although it seems to be able to do everything Photo Station can do. It's more a digital asset manager (AKA a 'DAM') - something that helps you track all your 'digital assets' (for me, those are mostly photos), ties in with post processing tools.
One interesting part is that they've come up with a portable container that can be moved from one platform to another (e.g. an external drive on a Win/Lin box can be moved to a Mac - PhotoStructure running on the new box just needs to be told where that storage is).
But... I'm actually at least somewhat in the market for a DAM (tens of thousands of photos from quite a few years). You might not be.
In the meantime, I set up something minimal called PhotoShow, which can turn folders of photos into a web show. It's abandonware, but it does that minimal bit that I've been using Photo Show (also abandonware) for. I think I posted a "PhotoShow 101' using docker-compose, so I won't put that here...
sudo curl -L "$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Is there any way to get this to pull the latest version when run? I did try:
sudo curl -L "$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
but that fails.
Like this?
version=$(curl -s | grep -oP '"tag_name": "\K(.*)(?=")')
sudo curl -L "${version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Seems like this time we have the other way arround :)

My suggestion works on a Syno ootb. Yours requires jq to be downloaded and dropped into the path in order to work.
I would favor the jq one anytime over the grep perl lookahead one on a real linux distro
Good to know :)

Well then the jq version of course! I do have jq on my system, and I kind of feel like I had to pull and put in the path my self ages ago. Even better if it's ootb available!

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Similar threads

Thanks for your replies, but I found the solution: I had to allow port 8083 in the firewall.
Thank you for this - I'll give it a go and see where I get - worst case I learn something as I go!
  • Question
Welcome to the forum! To where? What's going on? How are CF records set as well as NPM RP record for that...
I am struggling with that since I am only a copy & paste hacker. I have installed netdata on my Synology...
s4: It seems the INSTANCE_NAME is related to the world you have to create with the tool mentioned in the...
Published here on this forum. Possibly cross links to this forum. Not published elsewhere.
  • Question
Deployed Portainer in under 30 mins and up & running. Thanks.

Welcome to! is an unofficial Synology forum for NAS owners and enthusiasts.

Registration is free, easy and fast!