mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
				synced 2025-10-30 18:27:49 +00:00 
			
		
		
		
	Install AWS SDK and json-schema-validator via vcpkg
Signed-off-by: Johann Hoffmann <johann.hoffmann@mailbox.org>
This commit is contained in:
		
							
								
								
									
										81
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,17 +1,14 @@ | |||||||
| ARG DEBIAN_VERSION=11.5-slim | ARG DEBIAN_VERSION=11.5-slim | ||||||
| ARG POCO_VERSION=poco-tip-v1 | ARG POCO_VERSION=poco-tip-v1 | ||||||
| ARG FMTLIB_VERSION=9.0.0 |  | ||||||
| ARG CPPKAFKA_VERSION=tip-v1 | ARG CPPKAFKA_VERSION=tip-v1 | ||||||
| ARG JSON_VALIDATOR_VERSION=2.1.0 |  | ||||||
| ARG AWS_SDK_VERSION=1.9.315 |  | ||||||
|  |  | ||||||
| FROM debian:$DEBIAN_VERSION AS build-base | FROM debian:$DEBIAN_VERSION AS build-base | ||||||
|  |  | ||||||
| RUN apt-get update && apt-get install --no-install-recommends -y \ | RUN apt-get update && apt-get install --no-install-recommends -y \ | ||||||
|     make cmake g++ git \ |     make cmake g++ git curl zip unzip pkg-config \ | ||||||
|     libpq-dev libmariadb-dev libmariadbclient-dev-compat \ |     libpq-dev libmariadb-dev libmariadbclient-dev-compat \ | ||||||
|     librdkafka-dev libboost-all-dev libssl-dev \ |     librdkafka-dev libboost-all-dev libssl-dev \ | ||||||
|     zlib1g-dev nlohmann-json3-dev ca-certificates libcurl4-openssl-dev |     zlib1g-dev ca-certificates libcurl4-openssl-dev libfmt-dev | ||||||
|  |  | ||||||
| FROM build-base AS poco-build | FROM build-base AS poco-build | ||||||
|  |  | ||||||
| @@ -27,20 +24,6 @@ RUN cmake .. | |||||||
| RUN cmake --build . --config Release -j8 | RUN cmake --build . --config Release -j8 | ||||||
| RUN cmake --build . --target install | RUN cmake --build . --target install | ||||||
|  |  | ||||||
| FROM build-base AS fmtlib-build |  | ||||||
|  |  | ||||||
| ARG FMTLIB_VERSION |  | ||||||
|  |  | ||||||
| ADD https://api.github.com/repos/fmtlib/fmt/git/refs/tags/${FMTLIB_VERSION} version.json |  | ||||||
| RUN git clone https://github.com/fmtlib/fmt --branch ${FMTLIB_VERSION} /fmtlib |  | ||||||
|  |  | ||||||
| WORKDIR /fmtlib |  | ||||||
| RUN mkdir cmake-build |  | ||||||
| WORKDIR cmake-build |  | ||||||
| RUN cmake .. |  | ||||||
| RUN make |  | ||||||
| RUN make install |  | ||||||
|  |  | ||||||
| FROM build-base AS cppkafka-build | FROM build-base AS cppkafka-build | ||||||
|  |  | ||||||
| ARG CPPKAFKA_VERSION | ARG CPPKAFKA_VERSION | ||||||
| @@ -55,63 +38,29 @@ RUN cmake .. | |||||||
| RUN cmake --build . --config Release -j8 | RUN cmake --build . --config Release -j8 | ||||||
| RUN cmake --build . --target install | RUN cmake --build . --target install | ||||||
|  |  | ||||||
| FROM build-base AS json-schema-validator-build |  | ||||||
|  |  | ||||||
| ARG JSON_VALIDATOR_VERSION |  | ||||||
|  |  | ||||||
| ADD https://api.github.com/repos/pboettch/json-schema-validator/git/refs/tags/${JSON_VALIDATOR_VERSION} version.json |  | ||||||
| RUN git clone https://github.com/pboettch/json-schema-validator --branch ${JSON_VALIDATOR_VERSION} /json-schema-validator |  | ||||||
|  |  | ||||||
| WORKDIR /json-schema-validator |  | ||||||
| RUN mkdir cmake-build |  | ||||||
| WORKDIR cmake-build |  | ||||||
| RUN cmake .. |  | ||||||
| RUN make |  | ||||||
| RUN make install |  | ||||||
|  |  | ||||||
| FROM build-base AS aws-sdk-cpp-build |  | ||||||
|  |  | ||||||
| ARG AWS_SDK_VERSION |  | ||||||
|  |  | ||||||
| ADD https://api.github.com/repos/aws/aws-sdk-cpp/git/refs/tags/${AWS_SDK_VERSION} version.json |  | ||||||
| RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp --branch ${AWS_SDK_VERSION} /aws-sdk-cpp |  | ||||||
|  |  | ||||||
| WORKDIR /aws-sdk-cpp |  | ||||||
| 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 |  | ||||||
| RUN cmake --build . --target install |  | ||||||
|  |  | ||||||
| FROM build-base AS owsec-build | FROM build-base AS owsec-build | ||||||
|  |  | ||||||
| ADD CMakeLists.txt build /owsec/ | ADD CMakeLists.txt build /owsec/ | ||||||
|  | ADD overlays /owsec/overlays | ||||||
| ADD cmake /owsec/cmake | ADD cmake /owsec/cmake | ||||||
| ADD src /owsec/src | ADD src /owsec/src | ||||||
| ADD .git /owsec/.git | ADD .git /owsec/.git | ||||||
|  | RUN git clone https://github.com/microsoft/vcpkg && \ | ||||||
|  |     ./vcpkg/bootstrap-vcpkg.sh && \ | ||||||
|  |     mkdir /vcpkg/custom-triplets && \ | ||||||
|  |     cp /vcpkg/triplets/x64-linux.cmake /vcpkg/custom-triplets/x64-linux.cmake && \ | ||||||
|  |     sed -i 's/set(VCPKG_LIBRARY.*/set(VCPKG_LIBRARY_LINKAGE dynamic)/g' /vcpkg/custom-triplets/x64-linux.cmake && \ | ||||||
|  |     ./vcpkg/vcpkg install aws-sdk-cpp[s3]:x64-linux json-schema-validator:x64-linux --overlay-triplets=/vcpkg/custom-triplets --overlay-ports=/owsec/overlays | ||||||
|  |  | ||||||
| COPY --from=poco-build /usr/local/include /usr/local/include | COPY --from=poco-build /usr/local/include /usr/local/include | ||||||
| COPY --from=poco-build /usr/local/lib /usr/local/lib | COPY --from=poco-build /usr/local/lib /usr/local/lib | ||||||
| COPY --from=cppkafka-build /usr/local/include /usr/local/include | COPY --from=cppkafka-build /usr/local/include /usr/local/include | ||||||
| COPY --from=cppkafka-build /usr/local/lib /usr/local/lib | COPY --from=cppkafka-build /usr/local/lib /usr/local/lib | ||||||
| COPY --from=json-schema-validator-build /usr/local/include /usr/local/include |  | ||||||
| COPY --from=json-schema-validator-build /usr/local/lib /usr/local/lib |  | ||||||
| COPY --from=aws-sdk-cpp-build /usr/local/include /usr/local/include |  | ||||||
| COPY --from=aws-sdk-cpp-build /usr/local/lib /usr/local/lib |  | ||||||
|  |  | ||||||
| COPY --from=fmtlib-build /usr/local/include /usr/local/include |  | ||||||
| COPY --from=fmtlib-build /usr/local/lib /usr/local/lib |  | ||||||
|  |  | ||||||
| WORKDIR /owsec | WORKDIR /owsec | ||||||
| RUN mkdir cmake-build | RUN mkdir cmake-build | ||||||
| WORKDIR /owsec/cmake-build | WORKDIR /owsec/cmake-build | ||||||
| RUN cmake .. | RUN cmake -DCMAKE_TOOLCHAIN_FILE=/vcpkg/scripts/buildsystems/vcpkg.cmake .. | ||||||
| RUN cmake --build . --config Release -j8 | RUN cmake --build . --config Release -j8 | ||||||
|  |  | ||||||
| FROM debian:$DEBIAN_VERSION | FROM debian:$DEBIAN_VERSION | ||||||
| @@ -128,7 +77,7 @@ RUN mkdir -p "$OWSEC_ROOT" "$OWSEC_CONFIG" && \ | |||||||
|  |  | ||||||
| RUN apt-get update && apt-get install --no-install-recommends -y \ | RUN apt-get update && apt-get install --no-install-recommends -y \ | ||||||
|     librdkafka++1 gosu gettext ca-certificates bash jq curl wget \ |     librdkafka++1 gosu gettext ca-certificates bash jq curl wget \ | ||||||
|     libmariadb-dev-compat libpq5 unixodbc postgresql-client |     libmariadb-dev-compat libpq5 unixodbc postgresql-client libfmt7 | ||||||
|  |  | ||||||
| COPY readiness_check /readiness_check | COPY readiness_check /readiness_check | ||||||
| COPY test_scripts/curl/cli /cli | COPY test_scripts/curl/cli /cli | ||||||
| @@ -142,11 +91,9 @@ RUN wget https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentr | |||||||
|     -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt |     -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.crt | ||||||
|  |  | ||||||
| COPY --from=owsec-build /owsec/cmake-build/owsec /openwifi/owsec | COPY --from=owsec-build /owsec/cmake-build/owsec /openwifi/owsec | ||||||
| COPY --from=cppkafka-build /cppkafka/cmake-build/src/lib/* /usr/local/lib | COPY --from=owsec-build /vcpkg/installed/x64-linux/lib/ /usr/local/lib/ | ||||||
| COPY --from=poco-build /poco/cmake-build/lib/* /usr/local/lib | COPY --from=cppkafka-build /cppkafka/cmake-build/src/lib/ /usr/local/lib/ | ||||||
| COPY --from=aws-sdk-cpp-build /aws-sdk-cpp/cmake-build/aws-cpp-sdk-core/libaws-cpp-sdk-core.so /usr/local/lib | COPY --from=poco-build /poco/cmake-build/lib/ /usr/local/lib/ | ||||||
| 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 | RUN ldconfig | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								overlays/curl/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								overlays/curl/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) | ||||||
							
								
								
									
										4
									
								
								overlays/curl/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								overlays/curl/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | { | ||||||
|  |     "name": "curl", | ||||||
|  |     "version-string": "7.74.0-1.3+deb11u3" | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								overlays/openssl/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								overlays/openssl/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) | ||||||
							
								
								
									
										4
									
								
								overlays/openssl/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								overlays/openssl/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | { | ||||||
|  |     "name": "openssl", | ||||||
|  |     "version-string": "1.1.1n-0+deb11u3" | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								overlays/zlib/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								overlays/zlib/portfile.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) | ||||||
							
								
								
									
										4
									
								
								overlays/zlib/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								overlays/zlib/vcpkg.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | { | ||||||
|  |     "name": "zlib", | ||||||
|  |     "version-string": "1:1.2.11.dfsg-2+deb11u2" | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Johann Hoffmann
					Johann Hoffmann