smdion's Docker Template Repository - Directions and Help Here


Recommended Posts

Potiential bug report in DDClient Docker:

 

My DDClient was not updating my IP so I rooted around a bit.

 

According to the Dockerfile, the config file link is placed at /etc/ddclient.conf

 

ln -s /config/ddclient.conf /etc/ddclient.conf

 

but the /etc/init.d/ddclient file is set for .conf file to be at /etc/ddclient/ddclient.conf

 

#!/bin/sh
#
# Start ddclient that provides support for updating dynamic DNS services.
#
# Submitted by paolo martinelli

DDCLIENT=/usr/sbin/ddclient
CONF=/etc/ddclient/ddclient.conf
PIDFILE=/var/run/ddclient.pid
.....

 

when I copied the conf file from /etc/ddclient.conf to /etc/ddclient/ddclient.conf and restarted the container my IP updated instantly.

 

Hope this helps,

 

Thanks once again for such great docker containers.

 

The Capt.

 

I'm also having trouble getting ddclient to work using namecheap as my host.  Spent an hour on the livechat support with them and my .conf is good so would love a bit more info on this one.

 

I currently have my /config mapped to /mnt/cache/appdata/ddclient

 

If I start the ddclient with no conf it creates the sample one in my appdata/ddclient folder and I then edit it, and my log when I restart shows.

 

*** Running /etc/my_init.d/firstrun.sh...
Using existing config file.
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 9
Setting up watches.
Watches established.

 

So I assumed that meant it was using my conf file, but it would explain my problem if the above is correct.

 

Unfortunately I can't work out how to navigate to /etc/init.d/ within the container to look and check.

 

Got so far as

 

docker ls

 

but cannot work out how to browse the docker file system to check.

Link to comment
  • Replies 507
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

If I start the ddclient with no conf it creates the sample one in my appdata/ddclient folder and I then edit it, and my log when I restart shows.

 

*** Running /etc/my_init.d/firstrun.sh...
Using existing config file.
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 9
Setting up watches.
Watches established.

From what I can figure looking at the github from this docker, the "Setting up watches" and "Watches established" log messages refer to to inotify not ddclient starting up, but I may be wrong.

 

Hopefully smdion will chime in and offer his advice.

 

The Capt

So I assumed that meant it was using my conf file, but it would explain my problem if the above is correct.

 

 

Link to comment

From what I can figure looking at the github from this docker, the "Setting up watches" and "Watches established" log messages refer to to inotify not ddclient starting up, but I may be wrong.

 

Hopefully smdion will chime in and offer his advice.

 

The Capt

So I assumed that meant it was using my conf file, but it would explain my problem if the above is correct.

 

So how did you copy your conf file to the correct location, I'll give it a go and see if it works, would prove your theory as well as solve my problem. ;)

Link to comment

So how did you copy your conf file to the correct location, I'll give it a go and see if it works, would prove your theory as well as solve my problem. ;)

 

TBH I think my fix is a little hacky; it works, but now multiple instances of the ddclient are started instead of just one (Could result in over polling your DynDNS provider if left running and result in ban).

I think the DDClient launch script inside the container repeatedly launches the DDClient by mistake.

 

If you run this temp fix to the DDClient docker container, you should not leave the docker running for long as there will be loads of DDClient instances running. Hopefully we will get a proper fix soon.

 

SSH into unRAID

 

1: Run

docker ps -a

2: The output will list all your docker containers with an identifying number(letters and numbers) at the beginning of each line.

eg: My DDClient entry:

44913ba057e4        smdion/docker-ddclient:latest             "/sbin/my_init"        7 days ago          Exited (0) 6 minutes ago                                                                                                          DDClient

3. Run the following replacing the number with the number from your DDClient container in above step:

docker exec -i -t 44913ba057e4 /bin/bash

4. You are now at a command prompt inside your DDClient docker

5. Run the following:

cp /etc/ddclient.conf /etc/ddclient/ddclient.conf

then

exit

6. Stop and Restart Docker from UnRAID WebUI.

 

 

Your log should show:

 

*Starting ddclient...
...done.

 

I now advise you stop the container

 

Let me know if it works for you,

 

The Capt.

Link to comment

 

Let me know if it works for you,

 

The Capt.

 

I haven't seen any updates in my DNS yet, but there's still a possibility that my conf isn't correct I suppose.  Sure when smdion has a look we'll know a bit clearer.  Sorry I couldn't help.

 

It does start a lot of instances doen't it!  :o

Link to comment

 

Let me know if it works for you,

 

The Capt.

 

I'm going to say three words to you that I normally reserve only for my wife.....

 

You were right!

 

Tried a slightly different ddclient.conf and hey presto, updated my DNS immediately.

Good work Capt.

Link to comment

SSH into unRAID

 

1: Run

docker ps -a

2: The output will list all your docker containers with an identifying number(letters and numbers) at the beginning of each line.

eg: My DDClient entry:

44913ba057e4        smdion/docker-ddclient:latest             "/sbin/my_init"        7 days ago          Exited (0) 6 minutes ago                                                                                                          DDClient

3. Run the following replacing the number with the number from your DDClient container in above step:

docker exec -i -t 44913ba057e4 /bin/bash

4. You are now at a command prompt inside your DDClient docker

 

 

You do know that docker exec can also functions off the NAME of the docker container and not the cryptic number which changes each time it's restarted, right?

 

ie: docker exec -ti DDClient /bin/bash

 

Link to comment

I have forked smdion's DDClient container and made some fixes to it:

 

Added missing SSL dependency for DDClient

Config file now in correct place with correct symbolic links

DDClient now starts as a foreground service from runsv resulting in only one instance running as expected

inotify restarts DDClient gracefully on edit of ddclient.conf

 

To get the fixed DDClient Container:

 

First you add

https://github.com/CaptInsano/docker-containers/tree/templates

 

to your repo list in the DockerMan page you can add my updated DDClient container.

 

NOTE: The DDClient log on the DockerMan page of unRAID will list the following error:

 

WARNING: file /etc/ddclient/ddclient.conf: file /etc/ddclient/ddclient.conf must be accessible only by its owner (fixed)

 

This can be safely ignored, it is due to the ddclient.conf file being owner by user nobody instead of root to be editable on unRAID shares

 

 

@smdion

Hopefully you will get a chance to pull these changes into your  repo for more people to get the fixes.

Thanks again for your work.

 

The Capt.

Link to comment

Capt,

 

I tried your container but get the following error:

Starting DDClient
WARNING: unable to determine IP address
Starting DDClient
WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''

 

My ddclient.conf file is pretty basic:

protocol=namecheap
server=dynamicdns.park-your-domain.com
login=***.com
password=********
vpn

 

Am I missing anything?

Link to comment

Capt,

 

I tried your container but get the following error:

Starting DDClient
WARNING: unable to determine IP address
Starting DDClient
WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''

 

My ddclient.conf file is pretty basic:

protocol=namecheap
server=dynamicdns.park-your-domain.com
login=***.com
password=********
vpn

 

Am I missing anything?

 

/var/cache/ddclient/ddclient.cache is where DDClient stores the details from ddclient.conf so your problem stems from you ddclient.conf;

 

Looks like you have not provided DDClient a way to get your external IP in the ddclient.conf file:

 

NOTE: As we are running inside docker, I find it is better to use an external IP source such as in my example below.

 

eg:  my ddclient.conf.

 

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

daemon=300				# check every 300 seconds
timeout=10 
syslog=yes				# log update msgs to syslog 
#mail=root				# mail all msgs to root
#mail-failure=root			# mail failed update msgs to root
pid=/var/run/ddclient.pid		# record PID in file.
ssl=yes					# use ssl-support.  Works with ssl-library



use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=xxxxxxxxxxxxxxxxxxx
protocol=xxxxxxxxxxxxxxx
login=xxxxxxxxxxxxxxxxxx
password=xxxxxxxxxxxxxxxx
MY.DOMAIN.COM

 

try adding the use=web.... line to your ddclient.conf.

 

As this is smdion's topic; If you have any further issues, please use my separate topic in this forum until smdion may choose to update his docker with these fixes

http://lime-technology.com/forum/index.php?topic=38146.0

 

Thanks,

The Capt

Link to comment

Capt,

 

I tried your container but get the following error:

Starting DDClient
WARNING: unable to determine IP address
Starting DDClient
WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''

 

My ddclient.conf file is pretty basic:

protocol=namecheap
server=dynamicdns.park-your-domain.com
login=***.com
password=********
vpn

 

Am I missing anything?

 

I'll post here as that's where you asked the question, I also use namecheap.

 

Here's my ddcliet.conf

 

daemon=600
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
protocol=namecheap			
server=dynamicdns.park-your-domain.com
login=Your-Domain-Name-Here
password=Your-30-character-password-from-dashboard-on-namecheap
@

 

Try that works for me.

Link to comment

Any chance you would be willing to add a docker for this fork of HTPC Manager to your repository ?  It includes support for Sonarr (NZBDrone), Sickrage, and others.

 

https://github.com/Hellowlol/HTPC-Manager

 

Appreciate the consideration.

It's already there mate, add smdion's HTPC-manager and if it's not already there add nzbdrone as an environmental variable with an environmental value of 1.

Link to comment

Capt,  having issues with your ddclient

 

docker run -d --name="ddclient" --net="host" -e TZ="America/New_York" -v "/mnt/user/docker/volume_data/ddclient":"/config":rw captinsano/ddclient

 

I get this on loop:

 

Starting DDClient

WARNING:  unable to determine IP address

 

My config

 

protocol=namecheap
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dynamicdns.park-your-domain.com
login=**.com
password=67bea0*****
test

 

 

Running unraid 6.0-beta10a  (if that matters)

Link to comment

I don't see a plug-in for Sonarr (NZBDrone).

 

I see Couch Potato, Deluge, NZBGet, Newsnab, Plex. SABnzbd, Sickbeard, Squeezebox, TVHeadend, Transmission, XMBC, XBMC Servers, qBitorrent and uTorrent.

 

I don't see Sonarr.  I added the variable.  Maybe I'm an idiot, or maybe I'm missing something here ?  I can add it with the "Other Apps" option, but that doesn't provide the integration I was hoping for.

 

 

Any chance you would be willing to add a docker for this fork of HTPC Manager to your repository ?  It includes support for Sonarr (NZBDrone), Sickrage, and others.

 

https://github.com/Hellowlol/HTPC-Manager

 

Appreciate the consideration.

It's already there mate, add smdion's HTPC-manager and if it's not already there add nzbdrone as an environmental variable with an environmental value of 1.

Link to comment

Capt,  having issues with your ddclient

 

docker run -d --name="ddclient" --net="host" -e TZ="America/New_York" -v "/mnt/user/docker/volume_data/ddclient":"/config":rw captinsano/ddclient

 

I get this on loop:

 

Starting DDClient

WARNING:  unable to determine IP address

 

My config

 

protocol=namecheap
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dynamicdns.park-your-domain.com
login=**.com
password=67bea0*****
test

 

 

Running unraid 6.0-beta10a  (if that matters)

 

Probably best to post in CaptInsano's thread, but for the record here's my config.

 

daemon=600
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
protocol=namecheap			
server=dynamicdns.park-your-domain.com
login=Your-Domain-Name-Here
password=Your-30-character-password-from-dashboard-on-namecheap
@

 

Working fine as we speak.

 

Let me know if it doens't work, might be a problem on the namecheap side.

 

Link to comment

I would suggest to make sure you delete that container and retry again.  Possibly something left behind is causing it not to work.

 

I'm just experimenting with ddclient to see if I can get to the bottom of this and have also noticed that changing my ddclient.conf once I've set up the container, whether it's running or not at the time of the changes does indeed throw up some weird errors my end, although none that are the same of your admittedly.

 

Deleting the container did solve these issues.

 

Still looking into it, but it does seem to be a common error with ddclient.

 

Other thoughts I had were, make sure you don't have a VPN working on your UnRaid box, and do you have just the one NIC.

Link to comment

I just updated to the latest beta and had to redo my docker file.

 

I setup NZBGet and now when it loads I am getting these errors within NZBGet message tab. "Web-Server: 400 Bad Request, Resource: /jsonrpclib"

 

Any thoughts?

I just updated too.  It looks like nzbget needs to rebuild so it's going to take some time.
Link to comment
Guest
This topic is now closed to further replies.