Use xmlstarlet

This commit is contained in:
Girish Ramakrishnan
2022-06-08 20:43:05 -07:00
parent 9e32d8ac8b
commit 452abc2b78
4 changed files with 26 additions and 27 deletions

View File

@@ -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": []
}

View File

@@ -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/

View File

@@ -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

View File

@@ -27,14 +27,8 @@
<entry key='ldap.url'>##CLOUDRON_LDAP_URL##</entry>
<entry key='ldap.base'>##CLOUDRON_LDAP_USERS_BASE_DN##</entry>
<entry key='ldap.idAttribute'>username</entry>
<entry key='ldap.searchFilter'>(|(username=:login)(mail=:login))</entry>
<entry key='ldap.ldap.adminGroup'>admins</entry>
<entry key='ldap.searchFilter'>username=:login</entry>
<entry key='ldap.user'>##CLOUDRON_LDAP_BIND_DN##</entry>
<entry key='ldap.password'>##CLOUDRON_LDAP_BIND_PASSWORD##</entry>
<!-- <entry key='database.driver'>com.mysql.cj.jdbc.Driver</entry> -->
<!-- <entry key='database.url'>jdbc:##CLOUDRON_MYSQL_URL##?serverTimezone=UTC&amp;useSSL=false&amp;allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;characterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry> -->
<!-- <entry key='database.user'>sa</entry> -->
<!-- <entry key='database.password'></entry> -->
</properties>