2023-10-31 01:25:30 +00:00
|
|
|
FROM debian:buster-slim as tensorflow
|
|
|
|
|
|
|
|
WORKDIR /usr/src/build
|
|
|
|
|
|
|
|
# Install dependencies
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
git \
|
|
|
|
wget \
|
|
|
|
gnupg \
|
|
|
|
python3 \
|
|
|
|
python3-dev \
|
|
|
|
python3-pip \
|
|
|
|
python3-numpy \
|
|
|
|
llvm \
|
|
|
|
clang
|
|
|
|
|
|
|
|
RUN pip3 install wheel packaging requests opt_einsum
|
|
|
|
RUN pip3 install keras_preprocessing --no-deps
|
|
|
|
|
|
|
|
# Install bazel
|
|
|
|
RUN wget https://github.com/bazelbuild/bazelisk/releases/download/v1.18.0/bazelisk-linux-amd64
|
|
|
|
RUN chmod +x bazelisk-linux-amd64
|
|
|
|
RUN mv bazelisk-linux-amd64 /usr/local/bin/bazel
|
|
|
|
|
|
|
|
# Install tensorflow
|
|
|
|
RUN git clone https://github.com/tensorflow/tensorflow \
|
|
|
|
&& cd tensorflow \
|
|
|
|
&& git checkout v2.5.0
|
|
|
|
RUN cd tensorflow && ./configure
|
|
|
|
RUN cd tensorflow && bazel build --compilation_mode=opt --copt=-march=native --jobs=12 tensorflow:libtensorflow.so
|
|
|
|
|
2023-10-08 19:43:40 +00:00
|
|
|
FROM rust:1.73.0-buster as builder
|
|
|
|
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
2023-10-31 01:25:30 +00:00
|
|
|
# Copy tensorflow shared libraries from tensorflow image
|
|
|
|
COPY --from=tensorflow /usr/src/build/tensorflow/bazel-bin/tensorflow/libtensorflow.so* /usr/local/lib/
|
|
|
|
COPY --from=tensorflow /usr/src/build/tensorflow/bazel-bin/tensorflow/libtensorflow_framework.so* /usr/local/lib/
|
|
|
|
|
|
|
|
RUN ldconfig
|
|
|
|
|
2023-10-08 19:43:40 +00:00
|
|
|
# Install dependencies
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
libssl-dev \
|
|
|
|
pkg-config \
|
|
|
|
libharfbuzz-dev
|
|
|
|
|
|
|
|
# Copy files
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
# Build
|
|
|
|
RUN cargo build --release
|
|
|
|
|
|
|
|
FROM debian:buster-slim as fonts
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
wget \
|
|
|
|
xz-utils
|
|
|
|
|
|
|
|
WORKDIR /data/fonts
|
|
|
|
|
|
|
|
COPY ./docker/download_nerd_fonts.sh .
|
|
|
|
|
|
|
|
RUN ls -la
|
|
|
|
RUN chmod +x download_nerd_fonts.sh
|
|
|
|
RUN bash ./download_nerd_fonts.sh
|
|
|
|
|
|
|
|
FROM debian:buster-slim
|
|
|
|
|
2023-10-31 01:25:30 +00:00
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
2023-10-08 19:43:40 +00:00
|
|
|
# Install dependencies
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
|
|
libssl-dev \
|
|
|
|
libharfbuzz-dev \
|
|
|
|
libfontconfig1 \
|
|
|
|
fontconfig
|
|
|
|
|
|
|
|
# Copy fonts
|
2023-10-12 19:38:30 +00:00
|
|
|
COPY --from=fonts /data/fonts/nerd_fonts/* /usr/share/fonts/truetype/
|
2023-10-08 19:43:40 +00:00
|
|
|
RUN fc-cache -fv
|
|
|
|
|
2023-10-31 01:25:30 +00:00
|
|
|
# Copy binary abd tensorflow model files
|
|
|
|
COPY --from=builder /usr/src/app/target/release/inkify /usr/src/app/
|
|
|
|
COPY --from=builder /usr/src/app/src/tensorflow /usr/src/app/tensorflow/
|
|
|
|
|
|
|
|
# Copy tensorflow shared libraries from tensorflow image
|
|
|
|
COPY --from=tensorflow /usr/src/build/tensorflow/bazel-bin/tensorflow/libtensorflow.so* /usr/local/lib/
|
|
|
|
COPY --from=tensorflow /usr/src/build/tensorflow/bazel-bin/tensorflow/libtensorflow_framework.so* /usr/local/lib/
|
|
|
|
|
|
|
|
RUN ldconfig
|
2023-10-08 19:43:40 +00:00
|
|
|
|
|
|
|
ARG PORT=8080
|
|
|
|
ARG HOST=0.0.0.0
|
|
|
|
|
|
|
|
ENV PORT=$PORT
|
|
|
|
ENV HOST=$HOST
|
|
|
|
|
|
|
|
EXPOSE $PORT
|
|
|
|
|
|
|
|
# Run
|
2023-10-31 01:25:30 +00:00
|
|
|
CMD ["/usr/src/app/inkify", "--tensorflow-model-dir", "/usr/src/app/tensorflow"]
|