mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-27 19:02:07 +00:00
27b3d11aa6
We can't build the latest server on buster, but we were using "latest" so it actually was building on bullseye. Then we tried to run it on buster and it blew up. This locks both versions to bullseye so we're running on the same environment where we build.
33 lines
1 KiB
Docker
33 lines
1 KiB
Docker
# syntax = docker/dockerfile:1.2
|
|
|
|
FROM rust:1.55-bullseye 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 --package zed-server --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:bullseye-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"]
|