mirror of
https://github.com/Lumither/nocturne.git
synced 2026-10-17 10:26:21 +00:00
feat(container) production build
This commit is contained in:
10 files changed
+93
-18
No files matched your search
@@ -1,19 +1,19 @@
|
|||||||
# postgres settings
|
# postgres settings
|
||||||
DB_HOST=localhost
|
DB_HOST=localhost
|
||||||
DB_PORT=5432
|
DB_PORT=5432
|
||||||
POSTGRES_PASSWORD=
|
#POSTGRES_PASSWORD=
|
||||||
POSTGRES_USER=
|
POSTGRES_USER=nocturne
|
||||||
POSTGRES_DB=nocturne
|
POSTGRES_DB=nocturne
|
||||||
|
POSTGRES_HOST=postgres
|
||||||
|
|
||||||
# backend settings
|
# backend settings
|
||||||
|
|
||||||
#GIT_WORK_DIR=../blog_posts_git
|
#GIT_WORK_DIR=../blog_posts_git
|
||||||
#LOG_ROOT_DIR=/var/log/nocturne
|
#LOG_ROOT_DIR=/var/log/nocturne
|
||||||
|
#BLOG_ENDPOINT=https://github.com/Lumither/blog-posts.git
|
||||||
BLOG_ENDPOINT=https://github.com/Lumither/blog-posts.git
|
BLOG_GIT_URL=https://github.com/Lumither/blog-posts.git
|
||||||
WORK_DIR=~/.nocturne
|
WORK_DIR=/nocturne
|
||||||
BACKEND_PORT=3001
|
#BACKEND_PORT=3001
|
||||||
|
|
||||||
# frontend settings
|
# frontend settings
|
||||||
API_LOCAL_URL=http://localhost:3001
|
API_LOCAL_URL=http://backend:3001
|
||||||
API_REMOTE_URL=https://lumither.com/api
|
API_REMOTE_URL=https://lumither.com/api
|
||||||
@@ -1,6 +1,16 @@
|
|||||||
ddev:
|
ARCH := $(shell uname -m)
|
||||||
|
ifeq ($(ARCH), arm64)
|
||||||
|
ARCH := aarch64
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: release
|
||||||
|
|
||||||
|
release:
|
||||||
|
docker compose -f prod.compose.yaml build --build-arg ARCH=$(ARCH)
|
||||||
|
|
||||||
|
dev:
|
||||||
docker-compose -f dev.compose.yaml up --build
|
docker-compose -f dev.compose.yaml up --build
|
||||||
|
|
||||||
dclean:
|
clean:
|
||||||
docker-compose -f dev.compose.yaml rm -fsv
|
docker-compose -f prod.compose.yaml -f dev.compose.yaml rm -fsv
|
||||||
|
|
||||||
@@ -1 +1,3 @@
|
|||||||
/target
|
/target
|
||||||
|
|
||||||
|
/Cargo.lock
|
||||||
@@ -7,7 +7,7 @@ pub mod check_update;
|
|||||||
pub fn get_tasks(db_connection: Pool<Postgres>) -> Vec<Box<dyn Task>> {
|
pub fn get_tasks(db_connection: Pool<Postgres>) -> Vec<Box<dyn Task>> {
|
||||||
let db_conn_clone = db_connection.clone();
|
let db_conn_clone = db_connection.clone();
|
||||||
vec![
|
vec![
|
||||||
BasicTask::new(move || check_update::task(&db_conn_clone), "0 * * * * *")
|
BasicTask::new(move || check_update::task(&db_conn_clone), "0/15 * * * * *")
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.to_task(),
|
.to_task(),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
FROM rust:latest AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
COPY . .
|
||||||
|
RUN ["cargo", "build", "-r"]
|
||||||
|
|
||||||
|
FROM gcr.io/distroless/cc AS production
|
||||||
|
ARG ARCH
|
||||||
|
COPY --from=builder /app/target/release/api_server ./api_server
|
||||||
|
COPY --from=builder /usr/lib/${ARCH}-linux-gnu/libz.so.1 /usr/lib/${ARCH}-linux-gnu/
|
||||||
|
ENTRYPOINT ["./api_server"]
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
FROM node:22 AS builder
|
||||||
|
WORKDIR /app
|
||||||
|
ENV NEXT_TELEMETRY_DISABLED=1
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm install
|
||||||
|
COPY . .
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM gcr.io/distroless/nodejs22 AS production
|
||||||
|
ENV NEXT_TELEMETRY_DISABLED=1
|
||||||
|
COPY --from=builder /app/next.config.mjs ./
|
||||||
|
COPY --from=builder /app/.next/standalone ./
|
||||||
|
COPY --from=builder /app/.next/static ./.next/static
|
||||||
|
ENV HOSTNAME="0.0.0.0"
|
||||||
|
CMD ["./server.js"]
|
||||||
+2
-2
@@ -5,7 +5,7 @@ services:
|
|||||||
dockerfile: ../container/dev/frontend.containerfile
|
dockerfile: ../container/dev/frontend.containerfile
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- "3000:3000"
|
||||||
volumes:
|
volumes:
|
||||||
- ./frontend:/app
|
- ./frontend:/app
|
||||||
- /app/node_modules
|
- /app/node_modules
|
||||||
@@ -22,7 +22,7 @@ services:
|
|||||||
dockerfile: ../container/dev/backend.containerfile
|
dockerfile: ../container/dev/backend.containerfile
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 3001:3001
|
- "3001:3001"
|
||||||
volumes:
|
volumes:
|
||||||
- ./blog_posts_git:/app/blog_posts_git:ro
|
- ./blog_posts_git:/app/blog_posts_git:ro
|
||||||
env_file:
|
env_file:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/node_modules
|
/node_modules
|
||||||
|
|
||||||
/.next/
|
/.next
|
||||||
/out/
|
/out
|
||||||
/build
|
/build
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ const nextConfig = {
|
|||||||
hostname: 'pic.re'
|
hostname: 'pic.re'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
// output: 'standalone'
|
output: 'standalone'
|
||||||
};
|
};
|
||||||
|
|
||||||
export default nextConfig;
|
export default nextConfig;
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
services:
|
||||||
|
frontend:
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
build:
|
||||||
|
context: ./frontend
|
||||||
|
dockerfile: ../container/release/frontend.containerfile
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
|
||||||
|
|
||||||
|
backend:
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
build:
|
||||||
|
context: ./backend
|
||||||
|
dockerfile: ../container/release/backend.containerfile
|
||||||
|
args:
|
||||||
|
ARCH: ${ARCH}
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "3001:3001"
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
- ./.env.local
|
||||||
|
dns:
|
||||||
|
- 1.1.1.1
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:16.3
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
- ./.env.local
|
||||||
Reference in new issue
Block a user