A docker file to run the backend
This commit is contained in:
parent
01327e2335
commit
c5323cd2e2
48
backend/Dockerfile
Normal file
48
backend/Dockerfile
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
FROM ubuntu:24.04 as harebuild
|
||||||
|
|
||||||
|
RUN apt-get update -qq \
|
||||||
|
&& apt-get install -qy --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
git \
|
||||||
|
scdoc \
|
||||||
|
ca-certificates \
|
||||||
|
wget
|
||||||
|
|
||||||
|
RUN wget https://c9x.me/compile/release/qbe-1.2.tar.xz && \
|
||||||
|
tar -xf qbe-1.2.tar.xz && \
|
||||||
|
cd qbe-1.2 && \
|
||||||
|
make && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
RUN git clone https://git.sr.ht/~sircmpwn/harec && \
|
||||||
|
cd harec && \
|
||||||
|
cp configs/linux.mk config.mk && \
|
||||||
|
make && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
RUN git clone https://git.sr.ht/~sircmpwn/hare && \
|
||||||
|
cd hare && \
|
||||||
|
cp configs/linux.mk config.mk && \
|
||||||
|
make && \
|
||||||
|
make install
|
||||||
|
|
||||||
|
FROM rust:1.78 as rustbuild
|
||||||
|
|
||||||
|
WORKDIR /src
|
||||||
|
COPY ./ ./
|
||||||
|
RUN cargo build --release
|
||||||
|
|
||||||
|
FROM ubuntu:24.04
|
||||||
|
|
||||||
|
RUN apt-get update -qq \
|
||||||
|
&& apt-get install -qy --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
tzdata \
|
||||||
|
bubblewrap \
|
||||||
|
binutils \
|
||||||
|
vim
|
||||||
|
|
||||||
|
COPY --from=harebuild /usr/local /usr/local
|
||||||
|
COPY --from=rustbuild /src/target/release/backend /usr/local/bin/backend
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/backend"]
|
|
@ -1,6 +1,5 @@
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::os::fd::AsRawFd;
|
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
|
||||||
use tempfile::{TempDir, NamedTempFile};
|
use tempfile::{TempDir, NamedTempFile};
|
||||||
|
@ -14,13 +13,18 @@ const STATIC_ARGS: &[&str] = &[
|
||||||
"--proc", "/proc",
|
"--proc", "/proc",
|
||||||
"--dev", "/dev",
|
"--dev", "/dev",
|
||||||
"--ro-bind", "/etc/resolv.conf", "/etc/resolv.conf",
|
"--ro-bind", "/etc/resolv.conf", "/etc/resolv.conf",
|
||||||
"--ro-bind", "/nix", "/nix",
|
"--symlink", "usr/lib", "/lib",
|
||||||
|
"--symlink", "usr/lib64", "/lib64",
|
||||||
|
"--symlink", "usr/bin", "/bin",
|
||||||
|
"--symlink", "usr/sbin", "/sbin",
|
||||||
"--unshare-all",
|
"--unshare-all",
|
||||||
"--die-with-parent",
|
"--die-with-parent",
|
||||||
"--clearenv",
|
"--clearenv",
|
||||||
|
"--setenv", "PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
||||||
|
"--setenv", "HAREPATH", "/usr/local/src/hare/stdlib",
|
||||||
];
|
];
|
||||||
|
|
||||||
const HARE_COMMAND: &str = "/nix/store/cnysps4xzry4g26zyz7mmxfjj6wagpa6-hare-0.24.0/bin/hare";
|
const HARE_COMMAND: &str = "/usr/local/bin/hare";
|
||||||
|
|
||||||
/// Default command timeout in seconds.
|
/// Default command timeout in seconds.
|
||||||
const DEFAULT_TIMEOUT: u32 = 10;
|
const DEFAULT_TIMEOUT: u32 = 10;
|
||||||
|
|
Loading…
Reference in a new issue