Comments (5)
Here is my workaround for secret files with MySQL DB
deploy docker swarm command
docker stack deploy -c ./traccar.yaml traccar
traccar.yaml
version: "3.9"
services:
db:
image: mysql
ports:
- 3306:3306
environment:
TZ: "Asia/Yekaterinburg"
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/dbpwd-root
MYSQL_DATABASE: traccar
MYSQL_USER: traccar
MYSQL_PASSWORD_FILE: /run/secrets/dbpwd-traccar
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --skip-log-bin
volumes:
- ./db/data:/var/lib/mysql:rw
secrets:
- dbpwd-root
- dbpwd-traccar
traccar:
image: traccar/traccar:ubuntu
ports:
- 8082:8082
- 5000-5245:5000-5245
- 5000-5245:5000-5245/udp
environment:
CONFIG_USE_ENVIRONMENT_VARIABLES: "true"
DATABASE_DRIVER: "com.mysql.cj.jdbc.Driver"
DATABASE_URL: "jdbc:mysql://db:3306/traccar?allowPublicKeyRetrieval=true&useSSL=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode=''"
DATABASE_USER: traccar
DATABASE_PASSWORD_FILE: /run/secrets/dbpwd-traccar
volumes:
- ./traccar/logs:/opt/traccar/logs:rw
- ./traccar/entrypoint.sh:/usr/local/bin/entrypoint.sh:ro
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
entrypoint: /usr/local/bin/entrypoint.sh
depends_on:
- db
secrets:
- dbpwd-traccar
secrets:
dbpwd-root:
file: secrets/db_root_password
dbpwd-traccar:
file: secrets/db_traccar_password
The workaround itself, fill password environment variables from secret files.
content of ./traccar/entrypoint.sh
#!/bin/bash
## Set environment variables by their respective secrets
supportedSecrets=( "DATABASE_PASSWORD"
"MAIL_SMTP_PASSWORD"
"LDAP_PASSWORD"
)
for secret in ${supportedSecrets[@]}; do
envFile="${secret}_FILE"
if [ $(printenv ${envFile}) ]; then envFileName=`printenv ${envFile}`; fi
if [[ ${!envFile} && -f "$envFileName" ]]; then
val=`cat $envFileName`
export "${secret}"="$val"
echo "${secret} environment variable was set by secret ${envFile}"
fi
done
java -Xms1g -Xmx1g -Djava.net.preferIPv4Stack=true -jar tracker-server.jar conf/traccar.xml
DB passwords are stored in secrets/db_root_password
and secrets/db_traccar_password
The only problem that we need bash
.
from traccar-docker.
It is actually already supported.
Nice to see you back 😉
from traccar-docker.
Oh, my bad, have not checked the code, only documentation.
But i think, secret files is not implemented yet ?
I too like your project to forget about it :)
from traccar-docker.
Yeah, not the secret files.
from traccar-docker.
Any update on this? When can we use docker secret without having to use a script as a workaround?
from traccar-docker.
Related Issues (20)
- WebUI shows 404 - Not found HOT 3
- Docker-compose support HOT 17
- can't connect to mysql/postgres HOT 3
- Docker-compose path/fiile problem. "Are you trying to mount a directory onto a file?" HOT 3
- MySQL DB is locked HOT 1
- Docker Hub alternative HOT 4
- Cant get traccar.xml HOT 2
- Docker - No Matching Manifest HOT 4
- version 5.8 HOT 1
- MariaDB 11.0.2 connection error - Got an error reading communication packets HOT 3
- Container keeps restarting and udp port not working HOT 1
- Container with the preview version to solve the MariaDB 11 problem HOT 3
- Can't pull image on Raspberry Pi - archive/tar: invalid tar header.
- Update Docker image to OpenJDK 17 HOT 2
- GUI failed login requests not being logged HOT 1
- Can't add new connection to device HOT 1
- embed site to wordpress HOT 1
- How to increase java RAM limit in existing Traccar docker container HOT 2
- change Java heap size HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from traccar-docker.