1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-19 04:49:37 +02:00

fix: update Dockerfiles with metadata labels and improve build process

This commit is contained in:
Sean Morley 2025-06-05 23:29:39 -04:00
parent d91a4fbe98
commit 39c664ab1a
7 changed files with 52 additions and 27 deletions

View file

@ -1,11 +1,23 @@
# Use the official Python slim image as the base image
FROM python:3.10-slim
FROM python:3.13-slim
LABEL Developers="Sean Morley"
# Metadata labels for the AdventureLog image
LABEL maintainer="Sean Morley" \
version="v0.9.0" \
description="AdventureLog — the ultimate self-hosted travel companion." \
org.opencontainers.image.title="AdventureLog" \
org.opencontainers.image.description="AdventureLog is a self-hosted travel companion that helps you plan, track, and share your adventures." \
org.opencontainers.image.version="v0.9.0" \
org.opencontainers.image.authors="Sean Morley" \
org.opencontainers.image.url="https://raw.githubusercontent.com/seanmorley15/AdventureLog/refs/heads/main/brand/banner.png" \
org.opencontainers.image.source="https://github.com/seanmorley15/AdventureLog" \
org.opencontainers.image.vendor="Sean Morley" \
org.opencontainers.image.created="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" \
org.opencontainers.image.licenses="GPL-3.0"
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Set the working directory
WORKDIR /code

View file

@ -14,7 +14,7 @@ class StatsViewSet(viewsets.ViewSet):
"""
A simple ViewSet for listing the stats of a user.
"""
@action(detail=False, methods=['get'], url_path='counts/(?P<username>[\w.@+-]+)')
@action(detail=False, methods=['get'], url_path=r'counts/(?P<username>[\w.@+-]+)')
def counts(self, request, username):
if request.user.username == username:
user = get_object_or_404(User, username=username)

View file

@ -10,7 +10,7 @@ Pillow
whitenoise
django-resized
django-geojson
setuptools
setuptools<81
gunicorn==23.0.0
qrcode==8.0
slippers==0.6.2

View file

@ -7,7 +7,7 @@ AdventureLog can be installed in a variety of ways, depending on your platform o
::: tip Quick Start Script
**The fastest way to get started:**
[Install AdventureLog with a single command →](quick_start.md)
Perfect for most users. Zero guesswork. Maximum adventure. 🚀
Perfect for and Docker beginners.
:::
## 🐳 Popular Installation Methods

View file

@ -29,9 +29,8 @@ The script automatically:
1. Verifies Docker is installed and running
2. Downloads `docker-compose.yml` and `.env`
3. Prompts you for domain and port settings
4. Launches AdventureLog
5. Waits for services to start
6. Prints success info with next steps
4. Waits for services to start
5. Prints success info with next steps
## 🧼 Uninstall

View file

@ -156,7 +156,7 @@ Join thousands of travelers sharing tips, contributing code, and building the fu
### 🚀 **Open Source Freedom**
GPL licensed, fully transparent, and built for the community. By travelers, for travelers.
GPL 3.0 licensed, fully transparent, and built for the community. By travelers, for travelers.
</div>

View file

@ -1,35 +1,49 @@
# Use this image as the platform to build the app
FROM node:22-alpine AS external-website
# A small line inside the image to show who made it
LABEL Developers="Sean Morley"
# Metadata labels for the AdventureLog image
LABEL maintainer="Sean Morley" \
version="v0.9.0" \
description="AdventureLog — the ultimate self-hosted travel companion." \
org.opencontainers.image.title="AdventureLog" \
org.opencontainers.image.description="AdventureLog is a self-hosted travel companion that helps you plan, track, and share your adventures." \
org.opencontainers.image.version="v0.9.0" \
org.opencontainers.image.authors="Sean Morley" \
org.opencontainers.image.url="https://raw.githubusercontent.com/seanmorley15/AdventureLog/refs/heads/main/brand/banner.png" \
org.opencontainers.image.source="https://github.com/seanmorley15/AdventureLog" \
org.opencontainers.image.vendor="Sean Morley" \
org.opencontainers.image.created="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" \
org.opencontainers.image.licenses="GPL-3.0"
# The WORKDIR instruction sets the working directory for everything that will happen next
WORKDIR /app
# Copy all local files into the image
# Install pnpm globally first
RUN npm install -g pnpm
# Copy package files first for better Docker layer caching
COPY package.json pnpm-lock.yaml* ./
# Clean install all node modules using pnpm with frozen lockfile
RUN pnpm install --frozen-lockfile
# Copy the rest of the application files
COPY . .
# Remove the development .env file if present
RUN rm -f .env
# Install pnpm
RUN npm install -g pnpm
# Clean install all node modules using pnpm
RUN pnpm install
# Build SvelteKit app
RUN pnpm run build
# Make startup script executable
RUN chmod +x ./startup.sh
# Change to non-root user for security
USER node:node
# Expose the port that the app is listening on
EXPOSE 3000
# Run the app
RUN chmod +x ./startup.sh
# The USER instruction sets the user name to use as the default user for the remainder of the current stage
USER node:node
# Run startup.sh instead of the default command
CMD ["./startup.sh"]
CMD ["./startup.sh"]