Files
wlan-cloud-ucentralfms/Dockerfile
Johann Hoffmann 013ae293d1 [WIFI-3938] Remove ./add-ca-cert.sh script in Docker Compose deployment (#10)
* Update ca-certificates in entrypoint script

* Add restapi-ca.pem to Docker image
2021-09-21 18:58:20 +02:00

79 lines
2.6 KiB
Docker

FROM alpine AS builder
RUN apk add --update --no-cache \
openssl openssh \
ncurses-libs \
bash util-linux coreutils curl \
make cmake gcc g++ libstdc++ libgcc git zlib-dev \
openssl-dev boost-dev curl-dev util-linux-dev \
unixodbc-dev postgresql-dev mariadb-dev \
librdkafka-dev
RUN git clone https://github.com/stephb9959/poco /poco
RUN git clone https://github.com/stephb9959/cppkafka /cppkafka
RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp /aws-sdk-cpp
WORKDIR /aws-sdk-cpp
RUN mkdir cmake-build
WORKDIR cmake-build
RUN cmake .. -DBUILD_ONLY="s3" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-Wno-error=stringop-overflow -Wno-error=uninitialized" \
-DAUTORUN_UNIT_TESTS=OFF
RUN cmake --build . --config Release -j8
RUN cmake --build . --target install
WORKDIR /cppkafka
RUN mkdir cmake-build
WORKDIR cmake-build
RUN cmake ..
RUN cmake --build . --config Release -j8
RUN cmake --build . --target install
WORKDIR /poco
RUN mkdir cmake-build
WORKDIR cmake-build
RUN cmake ..
RUN cmake --build . --config Release -j8
RUN cmake --build . --target install
ADD CMakeLists.txt build /ucentralfms/
ADD cmake /ucentralfms/cmake
ADD src /ucentralfms/src
WORKDIR /ucentralfms
RUN mkdir cmake-build
WORKDIR /ucentralfms/cmake-build
RUN cmake ..
RUN cmake --build . --config Release -j8
FROM alpine
ENV UCENTRALFMS_USER=ucentralfms \
UCENTRALFMS_ROOT=/ucentralfms-data \
UCENTRALFMS_CONFIG=/ucentralfms-data
RUN addgroup -S "$UCENTRALFMS_USER" && \
adduser -S -G "$UCENTRALFMS_USER" "$UCENTRALFMS_USER"
RUN mkdir /ucentral
RUN mkdir -p "$UCENTRALFMS_ROOT" "$UCENTRALFMS_CONFIG" && \
chown "$UCENTRALFMS_USER": "$UCENTRALFMS_ROOT" "$UCENTRALFMS_CONFIG"
RUN apk add --update --no-cache librdkafka curl-dev mariadb-connector-c libpq unixodbc su-exec gettext ca-certificates
COPY --from=builder /ucentralfms/cmake-build/ucentralfms /ucentral/ucentralfms
COPY --from=builder /cppkafka/cmake-build/src/lib/* /lib/
COPY --from=builder /poco/cmake-build/lib/* /lib/
COPY --from=builder /aws-sdk-cpp/cmake-build/aws-cpp-sdk-core/libaws-cpp-sdk-core.so /lib/
COPY --from=builder /aws-sdk-cpp/cmake-build/aws-cpp-sdk-s3/libaws-cpp-sdk-s3.so /lib/
COPY ucentralfms.properties.tmpl ${UCENTRALFMS_CONFIG}/
COPY docker-entrypoint.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
EXPOSE 16004 17004 16104
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/ucentral/ucentralfms"]