From 9029f72a020c7ab208aa4ffc1197900d7f73a750 Mon Sep 17 00:00:00 2001 From: cupcakearmy Date: Tue, 7 Jun 2022 12:29:40 +0200 Subject: [PATCH] improve docker build and wait for memcached --- .dockerignore | 17 +++++++++++++++-- Dockerfile | 27 +++++++++++---------------- entry.sh | 11 +++++++++++ 3 files changed, 37 insertions(+), 18 deletions(-) create mode 100755 entry.sh diff --git a/.dockerignore b/.dockerignore index 84e364f..cd0b9c3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,15 @@ -/**/target -/**/node_modules +* +!/entry.sh + +!/backend/src +!/backend/Cargo.lock +!/backend/Cargo.toml + +!/frontend/locales +!/frontend/src +!/frontend/static +!/frontend/.npmrc +!/frontend/package.json +!/frontend/pnpm-lock.yaml +!/frontend/svelte.config.js +!/frontend/tsconfig.json diff --git a/Dockerfile b/Dockerfile index 5a3b92a..52a5581 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,26 @@ -# Frontend -FROM node:16-alpine as CLIENT - +# FRONTEND +FROM node:16-alpine as client WORKDIR /tmp -COPY ./frontend ./ - RUN npm install -g pnpm +COPY ./frontend ./ RUN pnpm install RUN pnpm run build -# Backend -FROM rust:1.59-alpine as RUST +# BACKEND +FROM rust:1.61-alpine as backend WORKDIR /tmp RUN apk add libc-dev openssl-dev alpine-sdk COPY ./backend ./ - RUN cargo build --release -# Server + +# RUNNER FROM alpine - WORKDIR /app -COPY --from=RUST /tmp/target/release/cryptgeon . -COPY --from=CLIENT /tmp/build ./frontend/build - +COPY ./entry.sh . +COPY --from=backend /tmp/target/release/cryptgeon . +COPY --from=client /tmp/build ./frontend/build ENV MEMCACHE=memcached:11211 - EXPOSE 5000 - -ENTRYPOINT [ "/app/cryptgeon" ] +ENTRYPOINT [ "/app/entry.sh" ] diff --git a/entry.sh b/entry.sh new file mode 100755 index 0000000..7664640 --- /dev/null +++ b/entry.sh @@ -0,0 +1,11 @@ +#!/bin/ash + +echo "Waiting for memcached" + +while ! nc -z -w 1 memcached 11211; do + sleep 1 + echo "..." +done + +echo "Starting server" +/app/cryptgeon