feat: add container file
- update README.md for containerization
This commit is contained in:
22
Containerfile
Normal file
22
Containerfile
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Stage 1: Build
|
||||||
|
FROM node:20-alpine AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm ci
|
||||||
|
COPY . .
|
||||||
|
RUN npm run build
|
||||||
|
RUN npm prune --production
|
||||||
|
|
||||||
|
# Stage 2: Run
|
||||||
|
FROM node:20-alpine
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=builder /app/build ./build
|
||||||
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
|
COPY package.json .
|
||||||
|
|
||||||
|
# Default SvelteKit production port
|
||||||
|
ENV PORT=3000
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Start the app
|
||||||
|
CMD ["node", "build"]
|
||||||
39
README.md
39
README.md
@@ -40,3 +40,42 @@ npm run build
|
|||||||
You can preview the production build with `npm run preview`.
|
You can preview the production build with `npm run preview`.
|
||||||
|
|
||||||
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
||||||
|
|
||||||
|
## Containerization
|
||||||
|
Login to repo
|
||||||
|
```
|
||||||
|
docker login gitea.fennert.org
|
||||||
|
docker login --tls-verify=false mini-server:8300
|
||||||
|
```
|
||||||
|
|
||||||
|
Build production image
|
||||||
|
```
|
||||||
|
docker build \
|
||||||
|
-t homepage:latest \
|
||||||
|
-t gitea.fennert.org/adrian/homepage:latest \ # Replace with your image name
|
||||||
|
-t mini-server:8300/adrian/homepage:latest \ # use host in network, cloudflare proxy block after 100mb upload
|
||||||
|
-f Containerfile .
|
||||||
|
```
|
||||||
|
|
||||||
|
Push image
|
||||||
|
```
|
||||||
|
docker push gitea.fennert.org/adrian/homepage:latest
|
||||||
|
docker push --tls-verify=false mini-server:8300/adrian/homepage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
Pull image
|
||||||
|
```
|
||||||
|
docker pull gitea.fennert.org/adrian/homepage:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
Run production image
|
||||||
|
```
|
||||||
|
docker run -d \
|
||||||
|
--name homepage \
|
||||||
|
--network home \
|
||||||
|
-p 3000:3000 \
|
||||||
|
-e STRAPI_API_KEY="your_secret_key" \ # chnage me
|
||||||
|
-e PUBLIC_STRAPI_URL="https://strapi-homepage.fennert.org" \
|
||||||
|
-e ORIGIN=https://fennert.org \
|
||||||
|
gitea.fennert.org/adrian/homepage:latest
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user