build: 🐋 Add back docker

This commit is contained in:
ThatOneCalculator 2022-03-19 14:49:23 -07:00
parent 3912c09876
commit 86de47953d
3 changed files with 88 additions and 0 deletions

21
backend/Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM rustlang/rust:nightly-alpine3.15 AS builder
RUN apk update && apk add --no-cache build-base openssl-dev gcompat libc6-compat bash
WORKDIR /build/zer0bin
COPY Cargo.toml .
RUN echo "fn main() {}" >> dummy.rs
RUN sed -i 's#src/main.rs#dummy.rs#' Cargo.toml
ENV RUSTFLAGS=-Ctarget-feature=-crt-static
RUN if [[ $(uname -m) =~ ^arm ]]; then CARGO_INCREMENTAL=1 cargo build --release --target aarch64-unknown-linux-musl; else CARGO_INCREMENTAL=1 cargo build --release; fi
RUN rm dummy.rs && sed -i 's#dummy.rs#src/main.rs#' Cargo.toml
COPY . .
RUN CARGO_INCREMENTAL=1 cargo build --release
FROM alpine:3.15
WORKDIR /backend
RUN apk update && apk add --no-cache build-base openssl
COPY --from=builder /build/zer0bin/target/release/zer0bin-bin .
CMD ["/backend/zer0bin-bin"]

58
docker-compose.yml Normal file
View File

@ -0,0 +1,58 @@
version: "3"
services:
backend:
build:
context: "./backend"
restart: always
tty: true
ports:
- "8000:8000"
networks:
- app-network
depends_on:
- postgres
frontend:
build:
context: "./frontend"
restart: always
tty: true
volumes:
- frontend-volume:/var/www/frontend
postgres:
image: postgres:alpine
restart: always
tty: true
environment:
POSTGRES_USER: postgres
POSTGRES_DB: zer0bin
POSTGRES_PASSWORD: postgres
networks:
- app-network
volumes:
- postgres-volume:/var/lib/postgresql/data
nginx:
image: nginx:alpine
restart: always
tty: true
ports:
- "80:80"
- "443:443"
depends_on:
- backend
volumes:
- ./example.nginx:/etc/nginx/conf.d/default.conf
- frontend-volume:/var/www/frontend
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
postgres-volume:
frontend-volume:

9
frontend/Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM node:16-alpine3.14
WORKDIR /var/www/frontend
COPY package.json ./
RUN yarn
COPY . .
RUN yarn build