Closed Adrian-at-CrimsonAzure closed 2 years ago
I came up with a very hacky solution:
version: '3.3'
volumes:
jdownloader:
services:
jdownloader:
image: jaymoulin/jdownloader
volumes:
- /etc/localtime:/etc/localtime:ro
- type: volume
source: jdownloader
target: /opt/JDownloader
volume:
nocopy: false
- /Tank/Media/Downloads/JDownloader:/opt/JDownloader/Downloads
environment:
MYJD_USER: email@email.com
MYJD_PASSWORD: "PASSWORD"
MYJD_DEVICE_NAME: Name
#XDG_DOWNLOAD_DIR: /opt/JDownloader/Downloads
ports:
- 3129:3129
On first creation, the contents of /opt/JDownloader
are copied into the volume called jdownloader
, making the whole application persistent.
\
\
\
I'm pretty sure the root cause is that Portainer (and any other manager) see JDownloader shutdown and immediately kill the container. This removes the tmp
and update
directories and everything starts from square one again. The other solution is probably to mount those folders to volumes as well, but this works so unless there's a proper fix (or I'm missing some config option or something) then I'll probably stick with this.
Thank you for your contribution. I'm not sure how Portainer work but its documentation seems not to delete container. Based on how I understand how containers should work either on swarm/k8s/portainer etc... The virtual file system should not be deleted if there is not explicit request from server architect. As this stated, the actual behaviour of the image is compliant with the expected behaviour.
Nevertheless, your hack seems to be an acceptable workaround. Please note that you may have unexpected behaviour if a JDownloader update or a Docker Image update have to alter any file in the workspace directory (new file architecture VS previously used architecture synchronization).
Therefore, I may be able to implement this workaround in the image. The question is: Do you (all the actual users) want to?
You can vote on this very post. For I stand away from Github these years, I'm pretty sure you'll all have to time vote.
The virtual file system should not be deleted if there is not explicit request from server architect. I believe the issue is that Portainer is generating a brand new container whenever JDownloader restarts (probably something to do with health checking?) which means that all the stuff that JDownloader set up is not in the new container. This may be a feature of Swarm and not Portainer, but I'm not entirely sure.
This probably will break things if there are significant changes to JDownloader or this container, but this way JDownloader isn't redownloaded every time the container is removed and later restarted.
Output of
docker inspect jdownloader --format='{{index .Config.Labels.version}}'
:Description
Cannot get JDownloader to actually run, it just continually updates. Either I'm an idiot and missing something, or something is messed up. Using the recommended identify method doesn't help either. This is basically the same as #91 but I have provided logs.
Docker Compose
Steps to reproduce the issue:
Describe the results you received: Runs first time update/setup, restarts container, runs first time update/setup again.
Logs: