diff --git a/docker-compose.yml b/docker-compose.yml index 752a2e8..67fb4f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,55 +1,43 @@ services: - - database: - image: mysql:8.4 + db: + image: timescale/timescaledb:latest-pg16 restart: unless-stopped environment: - MYSQL_RANDOM_ROOT_PASSWORD: "yes" - MYSQL_DATABASE: traccar - MYSQL_USER: traccar - MYSQL_PASSWORD: traccar + POSTGRES_DB: traccar + POSTGRES_USER: traccar + POSTGRES_PASSWORD: traccar + TIMESCALEDB_TELEMETRY: "off" volumes: - - ./data/mysql:/var/lib/mysql + - ./data/postgres:/var/lib/postgresql/data + networks: + - traccar_net + healthcheck: + test: ["CMD-SHELL", "pg_isready -U traccar"] + interval: 10s + timeout: 5s + retries: 5 traccar: image: traccar/traccar:latest restart: unless-stopped depends_on: - - database + db: + condition: service_healthy environment: CONFIG_USE_ENVIRONMENT_VARIABLES: "true" - DATABASE_DRIVER: com.mysql.cj.jdbc.Driver - DATABASE_URL: >- - jdbc:mysql://database:3306/traccar - ?zeroDateTimeBehavior=round - &serverTimezone=UTC - &allowPublicKeyRetrieval=true - &useSSL=false - &allowMultiQueries=true - &autoReconnect=true - &useUnicode=yes - &characterEncoding=UTF-8 - &sessionVariables=sql_mode='' + DATABASE_DRIVER: org.postgresql.Driver + DATABASE_URL: jdbc:postgresql://db:5432/traccar DATABASE_USER: traccar DATABASE_PASSWORD: traccar - healthcheck: - test: [ "CMD", "wget", "-q", "--spider", "http://localhost:8082/api/health" ] - interval: 2m - timeout: 5s - start_period: 1h - retries: 3 ports: - - "8082:8082" + - "8083:8082" - "5000-5500:5000-5500" + - "5000-5500:5000-5500/udp" volumes: - ./logs:/opt/traccar/logs + networks: + - traccar_net - autoheal: - image: willfarrell/autoheal:latest - restart: always - environment: - AUTOHEAL_CONTAINER_LABEL: all - AUTOHEAL_INTERVAL: 60 - AUTOHEAL_START_PERIOD: 3600 - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro +networks: + traccar_net: + driver: bridge