diff options
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 65 |
1 files changed, 65 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"] |