소스 검색

Add Dockerfile for deployment

Eric Zhang 4 년 전
부모
커밋
5e3ce8c406
2개의 변경된 파일28개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      .dockerignore
  2. 22 0
      Dockerfile

+ 6 - 0
.dockerignore

@@ -0,0 +1,6 @@
+/.git
+/target
+/node_modules
+/dist
+/dist-ssr
+*.local

+ 22 - 0
Dockerfile

@@ -0,0 +1,22 @@
+FROM ekidd/rust-musl-builder:1.51.0 as backend
+WORKDIR /home/rust/src
+COPY Cargo.toml Cargo.lock ./
+RUN mkdir src && echo "fn main() {}" > src/main.rs
+RUN cargo build --release
+COPY . .
+RUN sudo touch src/main.rs
+RUN cargo test --release
+RUN cargo build --release
+
+FROM node:alpine as frontend
+WORKDIR /usr/src/app
+COPY package.json package-lock.json ./
+RUN npm ci
+COPY . .
+RUN npm run build
+
+FROM scratch
+COPY --from=frontend /usr/src/app/dist dist
+COPY --from=backend /home/rust/src/target/x86_64-unknown-linux-musl/release/rustpad .
+USER 1000:1000
+CMD [ "./rustpad" ]