diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml new file mode 100644 index 0000000..5c11f25 --- /dev/null +++ b/.gitea/workflows/docker-build.yml @@ -0,0 +1,27 @@ +name: Docker Build + +on: push + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Login to Container Registry + run: | + docker login git.ambeles.nl \ + -u ${{ secrets.REGISTRY_USERNAME }} \ + -p ${{ secrets.REGISTRY_PASSWORD }} + + - name: Build Docker Image + run: | + docker build -t git.ambeles.nl/bedroomghost/gpx-studio:${{ github.sha }} . + + - name: Push Docker Image + run: | + docker tag git.ambeles.nl/bedroomghost/gpx-studio:${{ github.sha }} git.ambeles.nl/bedroomghost/gpx-studio:latest + docker push git.ambeles.nl/bedroomghost/gpx-studio:${{ github.sha }} + docker push git.ambeles.nl/bedroomghost/gpx-studio:latest + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4c98d4f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# Simple Dockerfile for the GPX viewer application +FROM node:18-alpine + +# Set working directory +WORKDIR /app + +# Copy all source files +COPY . . + +# Build the GPX library first +WORKDIR /app/gpx +RUN npm install +RUN npm run build + +# Then build and run the website +WORKDIR /app/website +RUN npm install + +# Expose the port for the dev server +EXPOSE 5173 + +# Create a simple startup script that injects the token from env var +RUN echo '#!/bin/sh' > /app/start.sh && \ + echo 'echo "PUBLIC_MAPBOX_TOKEN=$PUBLIC_MAPBOX_TOKEN" > /app/website/.env' >> /app/start.sh && \ + echo 'find /app/website -type f -name "*.js" -o -name "*.ts" -o -name "*.svelte" | xargs sed -i "s|https://brouter.gpx.studio|https://brouter.ambeles.nl|g"' >> /app/start.sh && \ + echo 'cd /app/website && npm run dev -- --host 0.0.0.0' >> /app/start.sh && \ + chmod +x /app/start.sh + +# Command to start the application +CMD ["/app/start.sh"] \ No newline at end of file