1activegeek/docker-airconnect

Doesn't read config files

oskarlindell opened this issue · 5 comments

I am using docker-airconnect on a Synology and have the following environmental variables set:

AIRUPNP_VAR = -x /config/airupnp.xml
AIRCAST_VAR = -x /config/aircast.xml

/config is mapped to a directory outside docker where I keep the xml-files and I have verified that it's available inside the docker container.

However, on start the above xml-files don't seem to be applied. I have tried changing settings in them (changing the names of speakers for example) but nothing happens.

@oskarlindell

  • can you share the log output from the container?
  • can you share a sample of what your config files contain?
  • was this running previously or is this your first attempt at running it?

Sure, here is the log from today:

1activegeek-airconnect1.csv.zip

I've only tried it today. Can get it up and running but would like to make some adjustments in the config files.

Here is the aircast config file. The only thing I've done is to change the name of the speaker:

<?xml version="1.0"?>
<aircast>
<common>
<enabled>1</enabled>
<stop_receiver>0</stop_receiver>
<media_volume>0.5000</media_volume>
<latency></latency>
<drift>0</drift>
<codec>flc</codec>
<metadata>1</metadata>
<artwork></artwork>
</common>
<main_log>info</main_log>
<cast_log>info</cast_log>
<util_log>warn</util_log>
<log_limit>-1</log_limit>
<device>
<udn>REMOVED</udn>
<name>V-rum soundbar</name>
<mac>REMOVED</mac>
<enabled>1</enabled>
</device>
</aircast>

I would check to validate your docker run command is correct? I don't see any issue testing the example you provided here. I first had the process provide a sample xml, then took that xml and customized the name of my Kitchen Speaker from Kitchen Speaker+ to Kitchen SPEAKER. Only thing I didn't supply below is a screenshot of the speaker showing up on my network appropriately, but this did in fact work correctly.

Sample config.xml:

<?xml version="1.0"?>
<aircast>
<common>
<enabled>1</enabled>
<stop_receiver>0</stop_receiver>
<media_volume>0.5000</media_volume>
<latency></latency>
<drift>0</drift>
<codec>flc</codec>
<metadata>1</metadata>
<artwork></artwork>
</common>
<main_log>info</main_log>
<cast_log>info</cast_log>
<util_log>warn</util_log>
<log_limit>-1</log_limit>
<device>
<udn>xxxxxxxxxxxxx</udn>
<name>Kitchen SPEAKER</name>
<mac>xx:xx:xx:xx</mac>
<enabled>1</enabled>
</device>
</aircast>

Docker create command (can use run with -d obviously):

docker create --name='airconnect' --net='host' -e TZ="America/New_York" -e HOST_OS="Unraid" -e 'AIRCAST_VAR'='-x /config/aircast.xml' -v '/mnt/user/appdata/airconfig.xml':'/config/aircast.xml':'rw' '1activegeek/airconnect'

Running service:

2020-04-20 10:42:15,807 INFO supervisord started with pid 250
2020-04-20 10:42:16,808 INFO spawned: 'airupnp-x86-64' with pid 261
2020-04-20 10:42:16,808 INFO spawned: 'aircast-x86-64' with pid 262
2020-04-20 10:42:17,923 INFO success: airupnp-x86-64 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-04-20 10:42:17,923 INFO success: aircast-x86-64 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

PS Aux inside the container:

root@atlantis:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0    204     4 ?        Ss   10:42   0:00 s6-svscan -t0 /var/run/s6/services
root        31  0.0  0.0    204     4 ?        S    10:42   0:00 s6-supervise s6-fdholderd
root       240  0.0  0.0    204     4 ?        S    10:42   0:00 s6-supervise airconnect
root       243  0.0  0.0  20048  3468 ?        Ss   10:42   0:00 bash ./run
root       250  0.3  0.0  56452 20488 ?        S    10:42   0:00 /usr/bin/python /usr/bin/supervisord --nodaemon --configuration /etc/supervisord.conf
root       261  0.0  0.0 842280  4376 ?        Sl   10:42   0:00 /bin/airupnp-x86-64 -l 1000:2000
root       262  0.0  0.0 225720  5424 ?        Sl   10:42   0:00 /bin/aircast-x86-64 -x /config/aircast.xml
root       317  0.3  0.0  20180  3940 pts/0    Ss   10:42   0:00 bash
root       326  0.0  0.0  36076  3432 pts/0    R+   10:42   0:00 ps aux

Thank you @1activegeek! Using your command line Docker create command I got it up and running and it does read the config files.

Comparing this container to the one I created earlier (using Synology's Docker GUI tools, not the command line), the only difference I can find is that the command line created the volume at "/docker/airconnect/" and Synology's GUI created it at "/docker/airconnect", that is without a trailing slash (/). Could this somehow be causing it?

Good to hear. I'll close this issue as resolved. Very likely that is the issue. Without looking at the specifics of your setup and diving into the details of how the Synology GUI builds the commands, I'd wager a bet it was in the run command being used. Since I had no issue, and you had no issue mimicking my command, this would lead me to conclude the command was the issue.

Enjoy AirPlaying!!