-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathDockerfile
51 lines (38 loc) · 1.42 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
FROM debian:11 as build
RUN apt update -y && apt install -y build-essential \
libcurl4-openssl-dev \
liblzma-dev \
libssl-dev \
python-dev-is-python3 \
python3-pip \
curl \
&& rm -rf /var/lib/apt/lists/*
ARG MONGO_VERSION=6.2.1
RUN mkdir /src && \
curl -o /tmp/mongo.tar.gz -L "https://github.com/mongodb/mongo/archive/refs/tags/r${MONGO_VERSION}.tar.gz" && \
tar xaf /tmp/mongo.tar.gz --strip-components=1 -C /src && \
rm /tmp/mongo.tar.gz
WORKDIR /src
COPY ./o2_patch.diff /o2_patch.diff
RUN patch -p1 < /o2_patch.diff
ARG NUM_JOBS=
RUN export GIT_PYTHON_REFRESH=quiet && \
python3 -m pip install requirements_parser && \
python3 -m pip install -r etc/pip/compile-requirements.txt && \
if [ "${NUM_JOBS}" -gt 0 ]; then export JOBS_ARG="-j ${NUM_JOBS}"; fi && \
python3 buildscripts/scons.py install-servers MONGO_VERSION="${MONGO_VERSION}" --release --disable-warnings-as-errors ${JOBS_ARG} && \
mv build/install /install && \
strip --strip-debug /install/bin/mongod && \
strip --strip-debug /install/bin/mongos && \
rm -rf build
FROM debian:11
RUN apt update -y && \
apt install -y libcurl4 && \
apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /install/bin/mongo* /usr/local/bin/
RUN mkdir -p /data/db && \
chmod -R 750 /data && \
chown -R 999:999 /data
USER 999
ENTRYPOINT [ "/usr/local/bin/mongod" ]