Skip to content

Commit

Permalink
Merge pull request #30 from drolx/main
Browse files Browse the repository at this point in the history
merge evious changes
  • Loading branch information
gpproton authored Nov 21, 2023
2 parents fabd96b + b9724ed commit 51464e7
Show file tree
Hide file tree
Showing 13 changed files with 354 additions and 64 deletions.
18 changes: 18 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# empty
**/build
**/.dockerignore
**/target
**/.gradle
**/.idea
**/.git
**/.gitignore
**/.project
**/.settings
**/bin
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/.docker
LICENSE
README.md
52 changes: 52 additions & 0 deletions .github/workflows/deploy-builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: deploy builder container image

on:
push:
branches:
- 'master'

env:
REGISTRY: ghcr.io
REPO: ghcr.io/${{ github.repository }}-builder

jobs:
deploy-builder:
runs-on: ubuntu-latest
strategy:
fail-fast: false
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set environment DOCKERHUB_IMAGE_PLATFORMS
run: |
_DOCKERHUB_IMAGE_PLATFORMS="linux/amd64,linux/arm64"
echo "DOCKERHUB_IMAGE_PLATFORMS=$_DOCKERHUB_IMAGE_PLATFORMS" >> $GITHUB_ENV
- name: Build and push Docker image Trace
uses: docker/build-push-action@v4
with:
context: .
file: docker/Dockerfile.builder
push: true
platforms: ${{ env.DOCKERHUB_IMAGE_PLATFORMS }}
tags: ${{ env.REPO }}:latest,${{ env.REPO }}:1.0
86 changes: 86 additions & 0 deletions .github/workflows/deploy-containers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
name: Build and push docker images

on:
release:
types: [published]

env:
REGISTRY: ghcr.io
DOCKERHUB_REPOSITORY: ghcr.io/${{ github.repository }}

defaults:
run:
shell: bash

jobs:
docker-build-push:
name: Build and push docker images
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
os: [alpine, debian, ubuntu]

steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Docker Hub
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: nowsprinting/check-version-format-action@v3
id: version
with:
prefix: 'v'

- name: Set environment DOCKERHUB_IMAGE_TAGS and VERSION
run: |
_VERSION="${{ steps.version.outputs.full_without_prefix }}"
_MAJOR_VERSION="${{ steps.version.outputs.major_without_prefix }}"
_DOCKERHUB_IMAGE_TAGS="$DOCKERHUB_REPOSITORY:$_VERSION-${{ matrix.os }}"
_DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION-${{ matrix.os }}"
_DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:${{ matrix.os }}"
if [ "${{ matrix.os }}" == "alpine" ]; then
_DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_VERSION"
_DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION"
_DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:latest"
fi
echo "DOCKERHUB_IMAGE_TAGS=$_DOCKERHUB_IMAGE_TAGS" >> $GITHUB_ENV
- name: Set environment DOCKERHUB_IMAGE_PLATFORMS
run: |
_DOCKERHUB_IMAGE_PLATFORMS="linux/amd64"
if [ "${{ matrix.os }}" == "debian" ]; then
_DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm64"
elif [ "${{ matrix.os }}" == "ubuntu" ]; then
_DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm64"
fi
echo "DOCKERHUB_IMAGE_PLATFORMS=$_DOCKERHUB_IMAGE_PLATFORMS" >> $GITHUB_ENV
- name: Build and push
if: env.DOCKERHUB_IMAGE_TAGS != ''
uses: docker/build-push-action@v4
with:
context: .
file: docker/Dockerfile.${{ matrix.os }}
tags: ${{ env.DOCKERHUB_IMAGE_TAGS }}
platforms: ${{ env.DOCKERHUB_IMAGE_PLATFORMS }}
push: true
build-args: |
TRACCAR_VERSION=${{ steps.version.outputs.full_without_prefix }}
61 changes: 0 additions & 61 deletions .github/workflows/release.yml

This file was deleted.

7 changes: 6 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
[submodule "track-web"]
path = track-web
url = ../track-web.git
branch = master
ignore = all
[submodule "traccar-web"]
path = traccar-web
url = ../traccar-web.git
url = ../track-web.git
branch = master
ignore = all
49 changes: 49 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
version: "3"

services:
# mysql:
# image: yobasystems/alpine-mariadb
# restart: always
# volumes:
# - mysql:/var/lib/mysql
# environment:
# - MYSQL_ROOT_PASSWORD=traccar
# - MYSQL_DATABASE=traccar
# - MYSQL_USER=traccar
# - MYSQL_PASSWORD=traccar
# - MYSQL_CHARSET=utf8mb4
# - MYSQL_COLLATION=utf8mb4_unicode_ci

builder:
image: ghcr.io/drolx/track-builder:latest
build:
context: docker
dockerfile: Dockerfile.builder

alpine:
image: ghcr.io/drolx/track:alpine
restart: always
build:
context: .
dockerfile: docker/Dockerfile.alpine
args:
TRACCAR_VERSION: 5.10

debian:
image: ghcr.io/drolx/track:debian
restart: always
build:
context: .
dockerfile: docker/Dockerfile.debian
args:
TRACCAR_VERSION: 5.10

ubuntu:
image: ghcr.io/drolx/track:ubuntu
restart: always
build:
context: .
dockerfile: docker/Dockerfile.ubuntu
args:
TRACCAR_VERSION: 5.10

24 changes: 24 additions & 0 deletions docker/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
FROM alpine:3 as base
LABEL maintainer="Godwin peter .O <[email protected]>"
ARG TRACCAR_VERSION=5.10
ENV TRACCAR_VERSION=${TRACCAR_VERSION}

FROM ghcr.io/drolx/track-builder:latest as builder
ARG TRACCAR_VERSION=5.10
ENV TRACCAR_VERSION=${TRACCAR_VERSION}
WORKDIR /src
COPY . .
RUN ./docker/build.sh $TRACCAR_VERSION

FROM base as final
WORKDIR /opt/traccar
RUN set -ex && \
apk add --no-cache --no-progress curl openjdk11-jre-headless
COPY --from=builder /src/setup/traccar-other-$TRACCAR_VERSION.zip /tmp/traccar.zip
RUN unzip -qo /tmp/traccar.zip -d /opt/traccar && \
rm /tmp/traccar.zip

HEALTHCHECK --interval=30s --timeout=5s CMD curl -f http://localhost:8082/ || exit 1
EXPOSE 8082
ENTRYPOINT ["java", "-Xms1g", "-Xmx1g", "-Djava.net.preferIPv4Stack=true"]
CMD ["-jar", "tracker-server.jar", "conf/traccar.xml"]
32 changes: 32 additions & 0 deletions docker/Dockerfile.builder
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
FROM docker.io/library/debian:bookworm-slim as base

FROM docker.io/library/node:18-bookworm-slim AS node

FROM base as builder
LABEL maintainer="Godwin peter .O <[email protected]>"
# Import Node.js binaries
COPY --from=node /usr/lib /usr/lib
COPY --from=node /usr/local/share /usr/local/share
COPY --from=node /usr/local/lib /usr/local/lib
COPY --from=node /usr/local/include /usr/local/include
COPY --from=node /usr/local/bin /usr/local/bin

RUN apt update && \
apt upgrade -y && \
apt install -y wget unzip zip openjdk-17-jdk

WORKDIR /tmp
# Install sencha tool
RUN wget "https://trials.sencha.com/cmd/7.6.0/SenchaCmd-7.6.0.87-linux-amd64.sh.zip" && \
unzip SenchaCmd-*.zip && \
./SenchaCmd-*.sh -q
## Set environment
ENV HOME=/root
RUN echo '\n' >> $HOME/.bashrc
RUN echo 'export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"' >> $HOME/.bashrc
RUN echo 'export PATH="${PATH}:$JAVA_HOME/bin/"' >> $HOME/.bashrc
RUN echo 'export PATH="${PATH}:$HOME/bin/Sencha/Cmd/"' >> $HOME/.bashrc
ENV PATH="${PATH}:$HOME/bin/Sencha/Cmd/"

RUN rm -rf /tmp/* && apt clean
31 changes: 31 additions & 0 deletions docker/Dockerfile.debian
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM debian:bookworm-slim as base
LABEL maintainer="Godwin peter .O <[email protected]>"
ARG TRACCAR_VERSION=5.10
ENV TRACCAR_VERSION=${TRACCAR_VERSION}

FROM ghcr.io/drolx/track-builder:latest as builder
ARG TRACCAR_VERSION=5.10
ENV TRACCAR_VERSION=${TRACCAR_VERSION}
WORKDIR /src
COPY . .
RUN ./docker/build.sh $TRACCAR_VERSION

FROM base as final
WORKDIR /opt/traccar

RUN set -ex && \
apt update && \
apt install -y \
--no-install-recommends unzip wget curl
RUN apt install -y openjdk-17-jre-headless

COPY --from=builder /src/setup/traccar-other-$TRACCAR_VERSION.zip /tmp/traccar.zip
RUN unzip -qo /tmp/traccar.zip -d /opt/traccar && \
apt-get autoremove --yes unzip wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/*

HEALTHCHECK --interval=30s --timeout=5s CMD curl -f http://localhost:8082/ || exit 1
EXPOSE 8082
ENTRYPOINT ["java", "-Xms1g", "-Xmx1g", "-Djava.net.preferIPv4Stack=true"]
CMD ["-jar", "tracker-server.jar", "conf/traccar.xml"]
Loading

0 comments on commit 51464e7

Please sign in to comment.