From c73fd21b94e3411fc6c781805df91b110e93fb71 Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 18 Aug 2022 14:15:38 +0200 Subject: [PATCH 1/4] Switch to Debian-slim base images Signed-off-by: Johann Hoffmann --- Dockerfile | 23 +++++++++++------------ docker-entrypoint.sh | 4 ++-- wait-for-postgres.sh | 4 ++-- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4b490c3..da70aac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,16 @@ -ARG ALPINE_VERSION=3.16.2 +ARG DEBIAN_VERSION=11.4-slim ARG POCO_VERSION=poco-tip-v1 ARG FMTLIB_VERSION=9.0.0 ARG CPPKAFKA_VERSION=tip-v1 ARG JSON_VALIDATOR_VERSION=2.1.0 -FROM alpine:$ALPINE_VERSION AS build-base +FROM debian:$DEBIAN_VERSION AS build-base -RUN apk add --update --no-cache \ +RUN apt-get update && apt-get install --no-install-recommends -y \ make cmake g++ git \ - unixodbc-dev postgresql-dev mariadb-dev \ - librdkafka-dev boost-dev openssl-dev \ - zlib-dev nlohmann-json \ - curl-dev + unixodbc-dev libpq-dev libmariadb-dev libmariadbclient-dev-compat \ + librdkafka-dev libboost-all-dev libssl-dev \ + zlib1g-dev nlohmann-json3-dev ca-certificates libcurl-dev FROM build-base AS poco-build @@ -91,21 +90,21 @@ WORKDIR /owanalytics/cmake-build RUN cmake .. RUN cmake --build . --config Release -j8 -FROM alpine:$ALPINE_VERSION +FROM debian:$DEBIAN_VERSION ENV OWANALYTICS_USER=owanalytics \ OWANALYTICS_ROOT=/owanalytics-data \ OWANALYTICS_CONFIG=/owanalytics-data -RUN addgroup -S "$OWANALYTICS_USER" && \ - adduser -S -G "$OWANALYTICS_USER" "$OWANALYTICS_USER" +RUN useradd "$OWANALYTICS_USER" RUN mkdir /openwifi RUN mkdir -p "$OWANALYTICS_ROOT" "$OWANALYTICS_CONFIG" && \ chown "$OWANALYTICS_USER": "$OWANALYTICS_ROOT" "$OWANALYTICS_CONFIG" -RUN apk add --update --no-cache librdkafka su-exec gettext ca-certificates bash jq curl \ - mariadb-connector-c libpq unixodbc postgresql-client +RUN apt-get update && apt-get install --no-install-recommends -y \ + librdkafka++1 gosu gettext ca-certificates bash jq curl wget \ + libmariadb-dev-compat libpq5 unixodbc COPY readiness_check /readiness_check COPY test_scripts/curl/cli /cli diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 6730b87..e44ecd1 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e if [ "$SELFSIGNED_CERTS" = 'true' ]; then @@ -48,7 +48,7 @@ if [ "$1" = '/openwifi/owanalytics' -a "$(id -u)" = '0' ]; then if [ "$RUN_CHOWN" = 'true' ]; then chown -R "$OWANALYTICS_USER": "$OWANALYTICS_ROOT" "$OWANALYTICS_CONFIG" fi - exec su-exec "$OWANALYTICS_USER" "$@" + exec gosu "$OWANALYTICS_USER" "$@" fi exec "$@" diff --git a/wait-for-postgres.sh b/wait-for-postgres.sh index 6eef267..2359644 100755 --- a/wait-for-postgres.sh +++ b/wait-for-postgres.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # wait-for-postgres.sh set -e @@ -20,7 +20,7 @@ if [ "$1" = '/openwifi/owanalytics' -a "$(id -u)" = '0' ]; then if [ "$RUN_CHOWN" = 'true' ]; then chown -R "$OWANALYTICS_USER": "$OWANALYTICS_ROOT" "$OWANALYTICS_CONFIG" fi - exec su-exec "$OWANALYTICS_USER" "$@" + exec gosu "$OWANALYTICS_USER" "$@" fi exec "$@" From 61dff87583f5b4d5036abafd457abc3dbc290eda Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Thu, 18 Aug 2022 16:35:05 +0200 Subject: [PATCH 2/4] Fix curl-dev package name Signed-off-by: Johann Hoffmann --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index da70aac..9b6ccb7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ make cmake g++ git \ unixodbc-dev libpq-dev libmariadb-dev libmariadbclient-dev-compat \ librdkafka-dev libboost-all-dev libssl-dev \ - zlib1g-dev nlohmann-json3-dev ca-certificates libcurl-dev + zlib1g-dev nlohmann-json3-dev ca-certificates libcurl4-openssl-dev FROM build-base AS poco-build From 2e046340e3df929627b8d0658f26c96df7ee3c5f Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Fri, 19 Aug 2022 16:06:39 +0200 Subject: [PATCH 3/4] Create necessary library links in Docker image Signed-off-by: Johann Hoffmann --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 9b6ccb7..92797ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -119,6 +119,8 @@ COPY --from=owanalytics-build /owanalytics/cmake-build/owanalytics /openwifi/owa COPY --from=cppkafka-build /cppkafka/cmake-build/src/lib/* /usr/local/lib COPY --from=poco-build /poco/cmake-build/lib/* /usr/local/lib +RUN ldconfig + EXPOSE 16009 17009 16109 ENTRYPOINT ["/docker-entrypoint.sh"] From 25397c80c9059d1f31a93442e5277cec278e330c Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Fri, 19 Aug 2022 17:18:59 +0200 Subject: [PATCH 4/4] Fix self-signed cert file extension for Debian Signed-off-by: Johann Hoffmann --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 92797ae..854d652 100644 --- a/Dockerfile +++ b/Dockerfile @@ -113,7 +113,7 @@ COPY owanalytics.properties.tmpl / COPY docker-entrypoint.sh / COPY wait-for-postgres.sh / RUN wget https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentral-deploy/main/docker-compose/certs/restapi-ca.pem \ - -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem + -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt COPY --from=owanalytics-build /owanalytics/cmake-build/owanalytics /openwifi/owanalytics COPY --from=cppkafka-build /cppkafka/cmake-build/src/lib/* /usr/local/lib