From 452abc2b784e3296d1783df35899d0418852c5a5 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Wed, 8 Jun 2022 20:43:05 -0700 Subject: [PATCH] Use xmlstarlet --- CloudronManifest.json | 5 +++-- Dockerfile | 6 +++--- start.sh | 34 +++++++++++++++++++--------------- traccar.xml.template | 8 +------- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/CloudronManifest.json b/CloudronManifest.json index 61d21ca..2714464 100644 --- a/CloudronManifest.json +++ b/CloudronManifest.json @@ -4,7 +4,7 @@ "author": "Traccar developers", "description": "file://DESCRIPTION.md", "changelog": "file://CHANGELOG", - "tagline": "One-line description", + "tagline": "Modern GPS Tracking Platform", "version": "0.1.0", "healthCheckPath": "/", "httpPort": 8082, @@ -22,10 +22,11 @@ } }, "website": "https://www.traccar.org", + "postInstallMessage": "file://POSTINSTALL.md", "contactEmail": "support@cloudron.io", "icon": "file://logo.png", "tags": [ - "changeme" + "gps", "tracking", "seek", "fleet" ], "mediaLinks": [] } diff --git a/Dockerfile b/Dockerfile index acb2ac1..7687863 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4 +FROM cloudron/base:3.2.0@sha256:ba1d566164a67c266782545ea9809dc611c4152e27686fd14060332dd88263ea RUN mkdir -p /app/code WORKDIR /app/code -ARG VERSION=4.10 +ARG VERSION=5.0 RUN wget https://github.com/traccar/traccar/releases/download/v${VERSION}/traccar-linux-64-${VERSION}.zip -O traccar.zip && \ unzip traccar.zip && \ @@ -11,7 +11,7 @@ RUN wget https://github.com/traccar/traccar/releases/download/v${VERSION}/tracca rm README.txt traccar.zip traccar.run RUN rm /app/code/conf/traccar.xml && ln -s /app/data/traccar.xml /app/code/conf/traccar.xml && \ - rm -rf /app/code/logs && ln -s /tmp/logs /app/code/logs + rm -rf /app/code/logs && ln -s /run/traccar/logs /app/code/logs COPY start.sh traccar.xml.template /app/pkg/ diff --git a/start.sh b/start.sh index e883275..6b06d47 100755 --- a/start.sh +++ b/start.sh @@ -2,25 +2,29 @@ set -eu -o pipefail +mkdir -p /run/traccar/logs + echo "=> Ensure traccar.xml config" -# if [[ ! -f /app/data/traccar.xml ]]; then +if [[ ! -f /app/data/traccar.xml ]]; then cp /app/pkg/traccar.xml.template /app/data/traccar.xml -# fi +fi -sed -e "s,##CLOUDRON_POSTGRESQL_HOST##,${CLOUDRON_POSTGRESQL_HOST}," \ - -e "s,##CLOUDRON_POSTGRESQL_PORT##,${CLOUDRON_POSTGRESQL_PORT}," \ - -e "s,##CLOUDRON_POSTGRESQL_DATABASE##,${CLOUDRON_POSTGRESQL_DATABASE}," \ - -e "s,##CLOUDRON_POSTGRESQL_USERNAME##,${CLOUDRON_POSTGRESQL_USERNAME}," \ - -e "s,##CLOUDRON_POSTGRESQL_PASSWORD##,${CLOUDRON_POSTGRESQL_PASSWORD}," \ - -e "s|##CLOUDRON_LDAP_URL##|${CLOUDRON_LDAP_URL}|" \ - -e "s|##CLOUDRON_LDAP_USERS_BASE_DN##|${CLOUDRON_LDAP_USERS_BASE_DN}|" \ - -e "s|##CLOUDRON_LDAP_BIND_DN##|${CLOUDRON_LDAP_BIND_DN}|" \ - -e "s,##CLOUDRON_LDAP_BIND_PASSWORD##,${CLOUDRON_LDAP_BIND_PASSWORD}," \ - -i /app/data/traccar.xml +xmlstarlet ed --inplace \ + --update '//properties/entry[@key="database.url"]' -v "jdbc:postgresql://${CLOUDRON_POSTGRESQL_HOST}:${CLOUDRON_POSTGRESQL_PORT}/${CLOUDRON_POSTGRESQL_DATABASE}" \ + --update '//properties/entry[@key="database.user"]' -v "${CLOUDRON_POSTGRESQL_USERNAME}" \ + --update '//properties/entry[@key="database.password"]' -v "${CLOUDRON_POSTGRESQL_PASSWORD}" \ + /app/data/traccar.xml -mkdir -p /tmp/logs +xmlstarlet ed --inplace \ + --update '//properties/entry[@key="ldap.url"]' -v "${CLOUDRON_LDAP_URL}" \ + --update '//properties/entry[@key="ldap.base"]' -v "${CLOUDRON_LDAP_USERS_BASE_DN}" \ + --update '//properties/entry[@key="ldap.idAttribute"]' -v "username" \ + --update '//properties/entry[@key="ldap.searchFilter"]' -v 'username=:login' \ + --update '//properties/entry[@key="ldap.user"]' -v "${CLOUDRON_LDAP_BIND_DN}" \ + --update '//properties/entry[@key="ldap.password"]' -v "${CLOUDRON_LDAP_BIND_PASSWORD}" \ + /app/data/traccar.xml -cd /app/code +chown -R cloudron /run/traccar /app/data echo "=> Start traccar-server" -./jre/bin/java -jar tracker-server.jar ./conf/traccar.xml +exec gosu cloudron:cloudron /app/code/jre/bin/java -jar tracker-server.jar /app/code/conf/traccar.xml diff --git a/traccar.xml.template b/traccar.xml.template index cf26fec..546bce8 100644 --- a/traccar.xml.template +++ b/traccar.xml.template @@ -27,14 +27,8 @@ ##CLOUDRON_LDAP_URL## ##CLOUDRON_LDAP_USERS_BASE_DN## username - (|(username=:login)(mail=:login)) - admins + username=:login ##CLOUDRON_LDAP_BIND_DN## ##CLOUDRON_LDAP_BIND_PASSWORD## - - - - -