zed/Dockerfile
Nathan Sobo 1537500fcb Include contents of the zed-server repo
We're going full monorepo.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-07-12 14:14:39 -06:00

33 lines
1,013 B
Docker

# syntax = docker/dockerfile:1.2
FROM rust as builder
WORKDIR app
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs
COPY . .
# Install script dependencies
RUN --mount=type=cache,target=./script/node_modules \
cd ./script && npm install --quiet
# Build CSS
RUN --mount=type=cache,target=./script/node_modules \
script/build-css --release
# Compile server
RUN --mount=type=cache,target=./script/node_modules \
--mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=./target \
cargo build --release --bin zed-server
# Copy server binary out of cached directory
RUN --mount=type=cache,target=./target \
cp /app/target/release/zed-server /app/zed-server
# Copy server binary to the runtime image
FROM debian:buster-slim as runtime
RUN apt-get update; \
apt-get install -y --no-install-recommends libcurl4-openssl-dev ca-certificates
WORKDIR app
COPY --from=builder /app/zed-server /app
ENTRYPOINT ["/app/zed-server"]