Browse Source

mongoc version 1.17.4

release-it 4 years ago
parent
commit
33aa2e6ec5
1 changed files with 79 additions and 7 deletions
  1. 79 7
      docker/coturn/Dockerfile

+ 79 - 7
docker/coturn/Dockerfile

@@ -1,12 +1,36 @@
-### 1. stage: create build image
-FROM debian:stable AS coturn-build
+### 1. stage: create mongoc image
+FROM debian:stable-slim AS mongoc-build
+
+ENV MONGO_LIB_VERSION 1.17.4
+
+# Install build dependencies
+RUN export DEBIAN_FRONTEND=noninteractive && \
+	apt-get update && \
+	apt-get install -y build-essential git python cmake
+RUN apt-get install -y libssl-dev
+RUN git clone https://github.com/mongodb/mongo-c-driver.git && \
+    cd mongo-c-driver && \
+    git checkout ${MONGO_LIB_VERSION} && \
+    python build/calc_release_version.py > VERSION_CURRENT  && \
+    mkdir -p cmake-build/install && \
+    cd cmake-build && \
+    cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DCMAKE_BUILD_TYPE=Release .. && \
+    DESTDIR=/mongo-c-driver/cmake-build/install cmake --build . --target install
+
+RUN cd /mongo-c-driver/cmake-build/install && tar -cf /mongoc.tar .
+
+### 2. stage: create build image
+FROM debian:stable-slim AS coturn-build
 
 ENV BUILD_PREFIX /usr/local/src
 
 # Install build dependencies
 RUN export DEBIAN_FRONTEND=noninteractive && \
 	apt-get update && \
-	apt-get install -y build-essential git debhelper dpkg-dev pkg-config libssl-dev libevent-dev sqlite3 libsqlite3-dev postgresql-client libpq-dev default-mysql-client default-libmysqlclient-dev libhiredis-dev libmongoc-dev libbson-dev libsystemd-dev
+	apt-get install -y build-essential git debhelper dpkg-dev pkg-config libssl-dev libevent-dev sqlite3 libsqlite3-dev postgresql-client libpq-dev default-mysql-client default-libmysqlclient-dev libhiredis-dev libsystemd-dev
+
+COPY --from=mongoc-build /mongoc.tar /tmp
+RUN tar -xf /tmp/mongoc.tar -C /
 
 # Clone Coturn
 WORKDIR ${BUILD_PREFIX}
@@ -17,9 +41,9 @@ WORKDIR ${BUILD_PREFIX}/coturn
 RUN ./configure
 RUN make
 
-### 2. stage: create production image
+### 3. stage: create production image
 
-FROM debian:stable AS coturn
+FROM debian:stable-slim AS production
 
 ENV INSTALL_PREFIX /usr/local
 ENV BUILD_PREFIX /usr/local/src
@@ -31,10 +55,58 @@ COPY --from=coturn-build ${BUILD_PREFIX}/coturn/man/ ${INSTALL_PREFIX}/man/
 #COPY turnserver.conf ${INSTALL_PREFIX}/etc
 COPY --from=coturn-build ${BUILD_PREFIX}/coturn/sqlite/turndb ${INSTALL_PREFIX}/var/db/turndb
 COPY --from=coturn-build ${BUILD_PREFIX}/coturn/turndb ${INSTALL_PREFIX}/turndb
+
+COPY --from=mongoc-build /mongoc.tar /tmp
+RUN tar -xf /tmp/mongoc.tar -C / && rm /tmp/mongoc.tar
+
 # Install lib dependencies
 RUN export DEBIAN_FRONTEND=noninteractive && \
 	apt-get update && \
-	apt-get install -y libc6 libevent-core-2.1-6 libevent-extra-2.1-6 libevent-openssl-2.1-6 libevent-pthreads-2.1-6 libhiredis0.14 libmariadbclient-dev libpq5 libsqlite3-0 libssl1.1 libmongoc-1.0-0 libbson-1.0-0
+	apt-get install -y libc6 libsasl2-2 libevent-2.1 libevent-core-2.1-6 libevent-extra-2.1-6 libevent-openssl-2.1-6 libevent-pthreads-2.1-6 libhiredis0.14 libmariadbclient-dev libpq5 libsqlite3-0 libssl1.1 && \
+	apt-get clean && rm -f /var/lib/apt/lists/*_*
+
+RUN if ! getent group "$TURNSERVER_GROUP" >/dev/null; then \
+        addgroup --system "$TURNSERVER_GROUP" || exit 1 ;\
+    fi \
+    && \
+    if ! getent passwd "$TURNSERVER_USER" >/dev/null; then \
+        adduser --system \
+           --home / \
+           --shell /bin/false \
+           --no-create-home \
+           --ingroup "$TURNSERVER_GROUP" \
+           --disabled-password \
+           --disabled-login \
+           --gecos "turnserver daemon" \
+               "$TURNSERVER_USER" || exit 1; \
+    fi
+
+WORKDIR ${INSTALL_PREFIX}
+CMD ${INSTALL_PREFIX}/bin/turnserver
+
+
+### 4. stage: create testing
+
+FROM debian:stable-slim as coturn
+
+ENV INSTALL_PREFIX /usr/local
+ENV BUILD_PREFIX /usr/local/src
+ENV TURNSERVER_GROUP turnserver
+ENV TURNSERVER_USER turnserver
+
+COPY --from=coturn-build ${BUILD_PREFIX}/coturn/bin/ ${INSTALL_PREFIX}/bin/
+COPY --from=coturn-build ${BUILD_PREFIX}/coturn/man/ ${INSTALL_PREFIX}/man/
+#COPY turnserver.conf ${INSTALL_PREFIX}/etc
+COPY --from=coturn-build ${BUILD_PREFIX}/coturn/sqlite/turndb ${INSTALL_PREFIX}/var/db/turndb
+COPY --from=coturn-build ${BUILD_PREFIX}/coturn/turndb ${INSTALL_PREFIX}/turndb
+
+COPY --from=mongoc-build /mongoc.tar /tmp
+RUN tar -xf /tmp/mongoc.tar -C / && rm /tmp/mongoc.tar
+
+# Install lib dependencies
+RUN export DEBIAN_FRONTEND=noninteractive && \
+	apt-get update && \
+	apt-get install -y libc6 libsasl2-2 libevent-2.1 libevent-core-2.1-6 libevent-extra-2.1-6 libevent-openssl-2.1-6 libevent-pthreads-2.1-6 libhiredis0.14 libmariadbclient-dev libpq5 libsqlite3-0 libssl1.1
 RUN apt-get install -y default-mysql-client postgresql-client redis-tools
 
 # Workaround for MongoDB
@@ -79,4 +151,4 @@ EXPOSE 49152-65535 49152-65535/udp
 #ENTRYPOINT ["/docker-entrypoint.sh"]
 
 WORKDIR ${INSTALL_PREFIX}
-CMD ${INSTALL_PREFIX}/bin/turnserver
+CMD ${INSTALL_PREFIX}/bin/turnserver