diff --git a/CMakeLists.txt b/CMakeLists.txt index a6dd0e0..5166636 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,7 @@ add_executable( owfms src/framework/ow_constants.h src/framework/MicroServiceErrorHandler.h src/framework/WebSocketClientNotifications.h + src/framework/MicroServiceErrorHandler.h src/RESTObjects/RESTAPI_SecurityObjects.h src/RESTObjects/RESTAPI_SecurityObjects.cpp src/RESTObjects/RESTAPI_ProvObjects.cpp src/RESTObjects/RESTAPI_ProvObjects.h src/RESTObjects/RESTAPI_GWobjects.h src/RESTObjects/RESTAPI_GWobjects.cpp diff --git a/Dockerfile b/Dockerfile index 777e4a8..234be34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,17 @@ -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 ARG AWS_SDK_VERSION=1.9.315 -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 + libpq-dev libmariadb-dev libmariadbclient-dev-compat \ + librdkafka-dev libboost-all-dev libssl-dev \ + zlib1g-dev nlohmann-json3-dev ca-certificates libcurl4-openssl-dev FROM build-base AS poco-build @@ -82,6 +81,9 @@ RUN mkdir cmake-build WORKDIR cmake-build RUN cmake .. -DBUILD_ONLY="sns;s3" \ -DCMAKE_BUILD_TYPE=Release \ + -DUSE_OPENSSL=ON \ + -DCPP_STANDARD=17 \ + -DBUILD_SHARED_LIBS=ON \ -DCMAKE_CXX_FLAGS="-Wno-error=stringop-overflow -Wno-error=uninitialized" \ -DAUTORUN_UNIT_TESTS=OFF RUN cmake --build . --config Release -j8 @@ -108,26 +110,24 @@ COPY --from=fmtlib-build /usr/local/lib /usr/local/lib WORKDIR /owfms RUN mkdir cmake-build WORKDIR /owfms/cmake-build -RUN cmake .. \ - -Dcrypto_LIBRARY=/usr/lib/libcrypto.so \ - -DBUILD_SHARED_LIBS=ON +RUN cmake .. RUN cmake --build . --config Release -j8 -FROM alpine:$ALPINE_VERSION +FROM debian:$DEBIAN_VERSION ENV OWFMS_USER=owfms \ OWFMS_ROOT=/owfms-data \ OWFMS_CONFIG=/owfms-data -RUN addgroup -S "$OWFMS_USER" && \ - adduser -S -G "$OWFMS_USER" "$OWFMS_USER" +RUN useradd "$OWFMS_USER" RUN mkdir /openwifi RUN mkdir -p "$OWFMS_ROOT" "$OWFMS_CONFIG" && \ chown "$OWFMS_USER": "$OWFMS_ROOT" "$OWFMS_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 @@ -136,7 +136,7 @@ COPY owfms.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=owfms-build /owfms/cmake-build/owfms /openwifi/owfms COPY --from=cppkafka-build /cppkafka/cmake-build/src/lib/* /usr/local/lib @@ -145,6 +145,8 @@ COPY --from=aws-sdk-cpp-build /aws-sdk-cpp/cmake-build/aws-cpp-sdk-core/libaws-c COPY --from=aws-sdk-cpp-build /aws-sdk-cpp/cmake-build/aws-cpp-sdk-s3/libaws-cpp-sdk-s3.so /usr/local/lib COPY --from=aws-sdk-cpp-build /aws-sdk-cpp/cmake-build/aws-cpp-sdk-sns/libaws-cpp-sdk-sns.so /usr/local/lib +RUN ldconfig + EXPOSE 16004 17004 16104 ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/build b/build index da2d398..19c7bdb 100644 --- a/build +++ b/build @@ -1 +1 @@ -14 \ No newline at end of file +16 \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 755510e..c237f97 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e if [ "$SELFSIGNED_CERTS" = 'true' ]; then @@ -52,7 +52,7 @@ if [ "$1" = '/openwifi/owfms' -a "$(id -u)" = '0' ]; then if [ "$RUN_CHOWN" = 'true' ]; then chown -R "$OWFMS_USER": "$OWFMS_ROOT" "$OWFMS_CONFIG" fi - exec su-exec "$OWFMS_USER" "$@" + exec gosu "$OWFMS_USER" "$@" fi exec "$@" diff --git a/src/framework/MicroService.h b/src/framework/MicroService.h index 6d2b1d8..cb17123 100644 --- a/src/framework/MicroService.h +++ b/src/framework/MicroService.h @@ -3571,7 +3571,7 @@ namespace OpenWifi { auto LoggingDestination = MicroService::instance().ConfigGetString("logging.type", "file"); auto LoggingFormat = MicroService::instance().ConfigGetString("logging.format", - "%Y-%m-%d %H:%M:%S %s: [%p] %t"); + "%Y-%m-%d %H:%M:%S.%i %s: [%p][thr:%I] %t"); if (LoggingDestination == "console") { Poco::AutoPtr Console(new Poco::ConsoleChannel); Poco::AutoPtr Async(new Poco::AsyncChannel(Console)); diff --git a/wait-for-postgres.sh b/wait-for-postgres.sh index 288d616..59ed58c 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/owfms' -a "$(id -u)" = '0' ]; then if [ "$RUN_CHOWN" = 'true' ]; then chown -R "$OWFMS_USER": "$OWFMS_ROOT" "$OWFMS_CONFIG" fi - exec su-exec "$OWFMS_USER" "$@" + exec gosu "$OWFMS_USER" "$@" fi exec "$@"