mirror of https://github.com/cocosolos/lsd.git
parent
48d87f667d
commit
42ce91d8e5
|
|
@ -23,6 +23,7 @@ RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
|
|||
mariadb-connector-c \
|
||||
openssl \
|
||||
python3 \
|
||||
tzdata \
|
||||
zeromq \
|
||||
zlib
|
||||
|
||||
|
|
@ -35,8 +36,7 @@ ENV PATH=/xiadmin/.local/bin:$PATH
|
|||
FROM base AS build
|
||||
|
||||
# Install build dependencies.
|
||||
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
|
||||
apk --update-cache add \
|
||||
RUN apk --update-cache add \
|
||||
binutils-dev \
|
||||
ccache \
|
||||
cmake \
|
||||
|
|
@ -48,6 +48,7 @@ RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
|
|||
openssl-dev \
|
||||
python3-dev \
|
||||
py3-pip \
|
||||
samurai \
|
||||
zeromq-dev \
|
||||
zlib-dev
|
||||
|
||||
|
|
@ -56,7 +57,7 @@ WORKDIR /server
|
|||
|
||||
# Install Python dependencies here, copied into runtime stage.
|
||||
RUN --mount=type=bind,source=server/tools/requirements.txt,target=/tmp/requirements.txt \
|
||||
--mount=type=cache,target=/xiadmin/.cache/pip,uid=$UID,gid=$GID \
|
||||
--mount=type=cache,target=/xiadmin/.cache/pip,id=pip-alpine,uid=$UID,gid=$GID \
|
||||
pip3 install --break-system-packages --user --ignore-installed --requirement /tmp/requirements.txt
|
||||
|
||||
# Exclude changes to git metadata, scripts, and sql not needed for build.
|
||||
|
|
@ -80,8 +81,8 @@ RUN LSB_FILE="/server/cmake/FindMariaDBCPP.cmake" && \
|
|||
|
||||
# Cache the build. Bind mounts to save copy time and keep clean git hash.
|
||||
ENV CCACHE_DIR=/xiadmin/.ccache
|
||||
RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID \
|
||||
--mount=type=cache,target=/xiadmin/.ccache,uid=$UID,gid=$GID \
|
||||
RUN --mount=type=cache,target=/xiadmin/build,id=build-alpine,uid=$UID,gid=$GID \
|
||||
--mount=type=cache,target=/xiadmin/.ccache,id=ccache-alpine,uid=$UID,gid=$GID \
|
||||
--mount=type=bind,source=.git,target=/.git \
|
||||
--mount=type=bind,source=server/.git,target=/server/.git \
|
||||
--mount=type=bind,source=server/scripts,target=/server/scripts \
|
||||
|
|
@ -90,9 +91,9 @@ RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID \
|
|||
cp -p /xiadmin/build/version.cpp /server/src/common/ 2> /dev/null; \
|
||||
cp -p /xiadmin/build/xi_* /server/ 2> /dev/null; \
|
||||
# --- End ---
|
||||
cmake -S /server -B /xiadmin/build -DCMAKE_BUILD_TYPE=Release && \
|
||||
cmake -G Ninja -S /server -B /xiadmin/build -DCMAKE_BUILD_TYPE=Release && \
|
||||
# --- PATCH efsw ---
|
||||
EFSW_FILE="/xiadmin/build/_deps/efsw-src/src/efsw/FileWatcherInotify.cpp"; \
|
||||
EFSW_FILE="/xiadmin/build/_deps/efsw-src/src/efsw/FileWatcherInotify.cpp" && \
|
||||
if [ -f "$EFSW_FILE" ]; then \
|
||||
# Check if include is missing.
|
||||
if ! grep -qF '#include <sys/select.h>' "$EFSW_FILE"; then \
|
||||
|
|
@ -110,9 +111,8 @@ RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID \
|
|||
# --- End Patch ---
|
||||
cmake --build /xiadmin/build -j$(nproc) && \
|
||||
# --- CACHE ---
|
||||
# Alpine seems to always re-link the executables.
|
||||
cp -p /server/xi_* /xiadmin/build/; \
|
||||
cp -p /server/src/common/version.cpp /xiadmin/build/;
|
||||
cp -p /server/xi_* /xiadmin/build/ && \
|
||||
cp -p /server/src/common/version.cpp /xiadmin/build/
|
||||
# --- End ---
|
||||
|
||||
#################
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|||
libzmq5 \
|
||||
mariadb-client \
|
||||
python3 \
|
||||
tzdata \
|
||||
zlib1g
|
||||
|
||||
RUN git config --system --add safe.directory /server
|
||||
|
|
@ -41,20 +42,18 @@ ENV PATH=/xiadmin/.local/bin:$PATH
|
|||
FROM base AS build
|
||||
|
||||
# Install build dependencies.
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
apt-get update && apt-get install --assume-yes --no-install-recommends --quiet \
|
||||
RUN apt-get update && apt-get install --assume-yes --no-install-recommends --quiet \
|
||||
binutils-dev \
|
||||
build-essential \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
git \
|
||||
libluajit-5.1-dev \
|
||||
libmariadb-dev-compat \
|
||||
libssl-dev \
|
||||
libzmq3-dev \
|
||||
make \
|
||||
ninja-build \
|
||||
python3-dev \
|
||||
python3-pip \
|
||||
zlib1g-dev
|
||||
|
|
@ -85,11 +84,11 @@ RUN --mount=type=cache,target=/xiadmin/build,uid=$UID,gid=$GID \
|
|||
cp -p /xiadmin/build/version.cpp /server/src/common/ 2> /dev/null; \
|
||||
cp -p /xiadmin/build/xi_* /server/ 2> /dev/null; \
|
||||
# --- End ---
|
||||
cmake -S /server -B /xiadmin/build -DCMAKE_BUILD_TYPE=Release && \
|
||||
cmake -G Ninja -S /server -B /xiadmin/build -DCMAKE_BUILD_TYPE=Release && \
|
||||
cmake --build /xiadmin/build -j$(nproc) && \
|
||||
# --- CACHE ---
|
||||
cp -p /server/xi_* /xiadmin/build/; \
|
||||
cp -p /server/src/common/version.cpp /xiadmin/build/;
|
||||
cp -p /server/xi_* /xiadmin/build/ && \
|
||||
cp -p /server/src/common/version.cpp /xiadmin/build/
|
||||
# --- End ---
|
||||
|
||||
#################
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ fi
|
|||
|
||||
# Load environment variables.
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
echo "Loading environment vairables from $ENV_FILE..."
|
||||
echo "Loading environment variables from $ENV_FILE..."
|
||||
set -a # Automatically export all sourced variables.
|
||||
source "$ENV_FILE"
|
||||
set +a
|
||||
|
|
|
|||
Loading…
Reference in New Issue