|
|
|
ARG VERSION
|
|
|
|
|
|
|
|
FROM registry.fit2cloud.com/jumpserver/xpack:${VERSION} AS build-xpack
|
|
|
|
FROM python:3.11-slim-bullseye AS build-core
|
|
|
|
ARG BUILD_DEPENDENCIES=" \
|
|
|
|
g++"
|
|
|
|
|
|
|
|
ARG APT_MIRROR=http://mirrors.ustc.edu.cn
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
|
|
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=core \
|
|
|
|
set -ex \
|
|
|
|
&& rm -f /etc/apt/apt.conf.d/docker-clean \
|
|
|
|
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' >/etc/apt/apt.conf.d/keep-cache \
|
|
|
|
&& sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list \
|
|
|
|
&& apt-get update \
|
|
|
|
&& apt-get -y install --no-install-recommends ${BUILD_DEPENDENCIES} \
|
|
|
|
&& echo "no" | dpkg-reconfigure dash
|
|
|
|
|
|
|
|
WORKDIR /opt/jumpserver
|
|
|
|
|
|
|
|
ARG PIP_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple
|
|
|
|
RUN --mount=type=cache,target=/root/.cache,sharing=locked,id=core \
|
|
|
|
--mount=type=bind,source=poetry.lock,target=/opt/jumpserver/poetry.lock \
|
|
|
|
--mount=type=bind,source=pyproject.toml,target=/opt/jumpserver/pyproject.toml \
|
|
|
|
set -ex \
|
|
|
|
&& python3 -m venv /opt/py3 \
|
|
|
|
&& pip install poetry -i ${PIP_MIRROR} \
|
|
|
|
&& poetry config virtualenvs.create false \
|
|
|
|
&& . /opt/py3/bin/activate \
|
|
|
|
&& poetry install --only xpack
|
|
|
|
|
|
|
|
FROM registry.fit2cloud.com/jumpserver/core:${VERSION}-ce
|
|
|
|
ARG TARGETARCH
|
|
|
|
|
|
|
|
ARG TOOLS=" \
|
|
|
|
curl \
|
|
|
|
iputils-ping \
|
|
|
|
netcat-openbsd \
|
|
|
|
nmap \
|
|
|
|
telnet \
|
|
|
|
vim \
|
|
|
|
wget"
|
|
|
|
|
|
|
|
ARG APT_MIRROR=http://mirrors.ustc.edu.cn
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
|
|
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=core \
|
|
|
|
set -ex \
|
|
|
|
&& apt-get update \
|
|
|
|
&& apt-get -y install --no-install-recommends ${TOOLS}
|
|
|
|
|
|
|
|
COPY --from=build-core /opt/py3 /opt/py3
|
|
|
|
COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack
|