Compare commits

...

11 Commits

Author SHA1 Message Date
Domagoj
3392053104
Merge d49313cbd0 into 46c78a0540 2025-08-16 18:42:44 +02:00
Domagoj
d49313cbd0
Merge branch 'beta' into docker 2025-08-16 18:42:42 +02:00
Domagoj
12aba4ad00
Remove Dockerfile comment 2025-08-16 15:18:58 +02:00
Domagoj
7b1b91647c Remove package manager constraints from github workflows per DayKev
Update podman.md docs with extra steps for locales and testing command
Remove missleading comment from Dockerfile
2025-08-16 14:59:27 +02:00
Domagoj
72b86ca6ad Add package manager constraint to package.json and Dockerfile
Update podman.md docs
2025-08-15 13:50:35 +02:00
Domagoj
28c535cadc Update docs/podman.md with working podman run command 2025-08-15 11:33:38 +02:00
Lugiad
b3a12d7f12
Merge branch 'beta' into docker 2025-08-05 10:57:44 +02:00
Domagoj
98ab49c1b2 Update documentation for podman usage 2025-07-29 19:02:08 +02:00
Domagoj
12f408dc0a Podman support + docs 2025-07-29 17:39:12 +02:00
Domagoj
c088b08e77 Refactor for improved podman support 2025-07-29 15:04:40 +02:00
Domagoj
bc92824b4c Add Dockerfile 2025-07-26 10:23:11 +02:00
9 changed files with 84 additions and 11 deletions

7
.dockerignore Normal file
View File

@ -0,0 +1,7 @@
# .dockerignore
node_modules
*.log
*.md
.gitignore
Dockerfile
.env

View File

@ -21,8 +21,6 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
with:

View File

@ -19,8 +19,6 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- uses: actions/setup-node@v4
with:

View File

@ -37,8 +37,6 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup Node 22.14.1
uses: actions/setup-node@v4

View File

@ -25,8 +25,6 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4

View File

@ -31,8 +31,6 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@v4

47
Dockerfile Normal file
View File

@ -0,0 +1,47 @@
# syntax=docker/dockerfile:1
ARG NODE_VERSION=22.14
ARG OS=alpine
FROM node:${NODE_VERSION}-${OS}
# Create non-root user
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Install git (for potential runtime needs)
RUN apk add --no-cache git
# Set working directory
WORKDIR /app
# Enable and prepare pnpm
RUN corepack enable && corepack prepare pnpm@10.14.0 --activate
COPY . .
# Copy package files
COPY package.json pnpm-lock.yaml ./
# Install all dependencies
RUN --mount=type=cache,target=/home/appuser/.pnpm-store \
pnpm install --frozen-lockfile && \
rm -rf /home/appuser/.pnpm-store/*
# Change ownership
RUN chown -R appuser:appgroup /app
# Switch to non-root user
USER appuser
# Set environment variables
ENV VITE_BYPASS_LOGIN=1 \
VITE_BYPASS_TUTORIAL=0 \
NEXT_TELEMETRY_DISABLED=1 \
PNP_HOME=/home/appuser/.shrc \
NODE_ENV=development \
PORT=8000
# Expose port
EXPOSE $PORT
# Start the app in development mode
CMD ["pnpm", "run", "start:podman"]

27
docs/podman.md Normal file
View File

@ -0,0 +1,27 @@
# Using Podman
## Requirements
* `podman >=5.x`
## Steps
1. `podman build -t pokerogue -f Dockerfile .`
2. `podman create --name temp-pokerogue localhost/pokerogue`
3. `podman cp temp-pokerogue:/app/node_modules ./`
4. `podman cp temp-pokerogue:/app/public/locales ./public/`
5. `podman rm temp-pokerogue`
6. `podman run --rm -p 8000:8000 -v $(pwd):/app:Z --userns=keep-id -u $(id -u):$(id -g) localhost/pokerogue`
7. Visit `http://localhost:8000/`
Note:
1. Steps 2,3,4 are required because mounting working directory without installed `node_modules/` locally will be empty,
this way we prevent it by copying them from the container itself to local directory
2. `podman run` may take a couple of minutes to mount the working directory
### Running tests inside container
1. `podman run --rm -p 8000:8000 -v $(pwd):/app:Z --userns=keep-id -u $(id -u):$(id -g) localhost/pokerogue2 pnpm test:silent
`

View File

@ -6,6 +6,7 @@
"scripts": {
"start": "vite",
"start:dev": "vite --mode development",
"start:podman": "vite --mode development --host 0.0.0.0 --port $PORT",
"build": "vite build",
"build:beta": "vite build --mode beta",
"preview": "vite preview",
@ -63,5 +64,6 @@
},
"engines": {
"node": ">=22.0.0"
}
},
"packageManager": "pnpm@10.14.0"
}