diff options
-rw-r--r-- | Dockerfile | 65 | ||||
-rw-r--r-- | docker-compose.yml | 17 |
2 files changed, 82 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..90d28a8dc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,65 @@ +FROM alpine:3.18 + +######################## +# Build Traccar server # +######################## + +RUN apk add --no-cache --no-progress \ + gcompat \ + libgcc \ + libstdc++ \ + openjdk11-jre-headless + +WORKDIR /opt/build-server + +ADD build.gradle ./ +ADD gradle ./gradle +ADD gradlew ./ +ADD settings.gradle ./ +ADD src ./src + +RUN ./gradlew assemble + +#################### +# Build Traccar UI # +#################### + +RUN apk add --no-cache --no-progress npm + +WORKDIR /opt/build-modern + +ADD traccar-web/modern/.eslintrc.json ./ +ADD traccar-web/modern/.npmrc ./ +ADD traccar-web/modern/index.html ./ +ADD traccar-web/modern/package.json ./ +ADD traccar-web/modern/package-lock.json ./ +ADD traccar-web/modern/vite.config.js ./ +ADD traccar-web/modern/public/ ./public +ADD traccar-web/modern/src/ ./src + +RUN echo "ESLINT_NO_DEV_ERRORS=false" > .env && \ + echo "VITE_APP_VERSION=$npm_package_version" >> .env && \ + npm install && \ + npm run build + +################## +# Deploy locally # +################## + +RUN mkdir -p /opt/traccar && \ + cp -r /opt/build-server/target/* /opt/traccar/ && \ + cp -r /opt/build-modern/build /opt/traccar/modern + +ADD schema /opt/traccar/schema +ADD templates /opt/traccar/templates + +########### +# Cleanup # +########### + +RUN rm -r /opt/build-server && \ + rm -r /opt/build-modern + +WORKDIR /opt/traccar + +CMD ["/usr/bin/java", "-Xms1g", "-Xms1g", "-jar", "tracker-server.jar", "-c", "conf/traccar.xml"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..434f12de0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' + +services: + trackermap: + build: + context: . + dockerfile: Dockerfile + # Configure memory limits here! + command: ["/usr/bin/java", "-Xms1g", "-Xms1g", "-Xss1m", "-jar", "tracker-server.jar", "-c", "conf/traccar.xml"] + ports: + - 8082:8082 + - 5001-5211:5001-5211 + volumes: + - ./conf:/opt/traccar/conf:ro + - ./data:/opt/traccar/data + - ./logs:/opt/traccar/logs + - ./media:/opt/traccar/media |