Skip to content

Commit b28f8a3

Browse files
committed
Media-proxy Dockerfile unification with buildsystem
Media-proxy Dockerfile unification with buildsystem Signed-off-by: Linkiewicz, Miłosz <[email protected]>
1 parent 6a259f5 commit b28f8a3

File tree

3 files changed

+49
-75
lines changed

3 files changed

+49
-75
lines changed

build_docker.sh

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,53 @@ BUILD_ARGUMENTS=()
1616
mapfile -t BUILD_ARGUMENTS < <(compgen -e | sed -nE '/^(.*)(_proxy|_PROXY)$/{s/^/--build-arg=/;p}')
1717
BUILD_ARGUMENTS+=( "--progress=plain" "--network=host" "--build-arg" "IMAGE_CACHE_REGISTRY=${IMAGE_CACHE_REGISTRY}" )
1818

19-
docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/sdk:${IMAGE_TAG}" -f "${SCRIPT_DIR}/sdk/Dockerfile" "$@" "${SCRIPT_DIR}"
19+
MCM_SDK="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/sdk:${IMAGE_TAG}" -f "${SCRIPT_DIR}/sdk/Dockerfile" "$@" "${SCRIPT_DIR}")"
20+
MCM_MEDIA_PROXY="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/media-proxy:${IMAGE_TAG}" --target media-proxy -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}")"
21+
MCM_MTL_MANAGER="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/mtl-manager:${IMAGE_TAG}" --target mtl-manager -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}")"
22+
MCM_MESH_AGENT="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/mesh-agent:${IMAGE_TAG}" --target mesh-agent -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}")"
2023

21-
docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/media-proxy:${IMAGE_TAG}" --target media-proxy -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}"
22-
docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/mtl-manager:${IMAGE_TAG}" --target mtl-manager -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}"
23-
docker buildx build "${BUILD_ARGUMENTS[@]}" -t "${IMAGE_REGISTRY}/mcm/mesh-agent:${IMAGE_TAG}" --target mesh-agent -f "${SCRIPT_DIR}/media-proxy/Dockerfile" "$@" "${SCRIPT_DIR}"
24+
FFMPEG_7_0="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" --build-arg FFMPEG_VER="7.0" -t "${IMAGE_REGISTRY}/mcm/ffmpeg:${IMAGE_TAG}" -f "${SCRIPT_DIR}/ffmpeg-plugin/Dockerfile" "$@" "${SCRIPT_DIR}")"
25+
FFMPEG_6_1="$(echo docker buildx build "${BUILD_ARGUMENTS[@]}" --build-arg FFMPEG_VER="6.1" -t "${IMAGE_REGISTRY}/mcm/ffmpeg:6.1-${IMAGE_TAG}" -f "${SCRIPT_DIR}/ffmpeg-plugin/Dockerfile" "$@" "${SCRIPT_DIR}")"
2426

25-
docker buildx build "${BUILD_ARGUMENTS[@]}" --build-arg FFMPEG_VER="7.0" -t "${IMAGE_REGISTRY}/mcm/ffmpeg:${IMAGE_TAG}" -f "${SCRIPT_DIR}/ffmpeg-plugin/Dockerfile" "$@" "${SCRIPT_DIR}"
26-
docker buildx build "${BUILD_ARGUMENTS[@]}" --build-arg FFMPEG_VER="6.1" -t "${IMAGE_REGISTRY}/mcm/ffmpeg:6.1-${IMAGE_TAG}" -f "${SCRIPT_DIR}/ffmpeg-plugin/Dockerfile" "$@" "${SCRIPT_DIR}"
27+
export MCM_SDK
28+
export MCM_MEDIA_PROXY
29+
export MCM_MTL_MANAGER
30+
export MCM_MESH_AGENT
31+
export FFMPEG_7_0
32+
export FFMPEG_6_1
2733

28-
docker tag "${IMAGE_REGISTRY}/mcm/sdk:${IMAGE_TAG}" "mcm/sample-app:${IMAGE_TAG}"
29-
docker tag "${IMAGE_REGISTRY}/mcm/media-proxy:${IMAGE_TAG}" "mcm/media-proxy:${IMAGE_TAG}"
30-
docker tag "${IMAGE_REGISTRY}/mcm/mtl-manager:${IMAGE_TAG}" "mcm/mtl-manager:${IMAGE_TAG}"
31-
docker tag "${IMAGE_REGISTRY}/mcm/mesh-agent:${IMAGE_TAG}" "mcm/mesh-agent:${IMAGE_TAG}"
32-
docker tag "${IMAGE_REGISTRY}/mcm/ffmpeg:${IMAGE_TAG}" "mcm/ffmpeg:${IMAGE_TAG}"
33-
docker tag "${IMAGE_REGISTRY}/mcm/ffmpeg:6.1-${IMAGE_TAG}" "mcm/ffmpeg:6.1-${IMAGE_TAG}"
34+
function build_and_tag_all_dockerfiles() {
35+
$MCM_SDK
36+
$MCM_MEDIA_PROXY
37+
$MCM_MTL_MANAGER
38+
$MCM_MESH_AGENT
39+
$FFMPEG_7_0
40+
$FFMPEG_6_1
41+
42+
docker tag "${IMAGE_REGISTRY}/mcm/sdk:${IMAGE_TAG}" "mcm/sample-app:${IMAGE_TAG}"
43+
docker tag "${IMAGE_REGISTRY}/mcm/media-proxy:${IMAGE_TAG}" "mcm/media-proxy:${IMAGE_TAG}"
44+
docker tag "${IMAGE_REGISTRY}/mcm/mtl-manager:${IMAGE_TAG}" "mcm/mtl-manager:${IMAGE_TAG}"
45+
docker tag "${IMAGE_REGISTRY}/mcm/mesh-agent:${IMAGE_TAG}" "mcm/mesh-agent:${IMAGE_TAG}"
46+
docker tag "${IMAGE_REGISTRY}/mcm/ffmpeg:${IMAGE_TAG}" "mcm/ffmpeg:${IMAGE_TAG}"
47+
docker tag "${IMAGE_REGISTRY}/mcm/ffmpeg:6.1-${IMAGE_TAG}" "mcm/ffmpeg:6.1-${IMAGE_TAG}"
48+
}
49+
function print_build_help_dockerfiles() {
50+
echo -e MCM_SDK="${MCM_SDK}\n"
51+
echo -e MCM_MEDIA_PROXY="${MCM_MEDIA_PROXY}\n"
52+
echo -e MCM_MTL_MANAGER="${MCM_MTL_MANAGER}\n"
53+
echo -e MCM_MESH_AGENT="${MCM_MESH_AGENT}\n"
54+
echo -e FFMPEG_7_0="${FFMPEG_7_0}\n"
55+
echo -e FFMPEG_6_1="${FFMPEG_6_1}\n"
56+
}
57+
58+
# Allow sourcing of the script. Run only when asked
59+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
60+
# ======= RUNTIME EXEC START
61+
build_and_tag_all_dockerfiles
62+
print_build_help_dockerfiles
63+
# ======= RUNTIME EXEC STOP
64+
else
65+
# ======= SOURCED SCRIPT START
66+
return 0
67+
# ======= RUNTIME SCRIPT STOP
68+
fi

media-proxy/Dockerfile

Lines changed: 2 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -53,69 +53,8 @@ RUN curl -Lf "https://go.dev/dl/go${GOLANG_GO_VER}.linux-amd64.tar.gz" -o "/usr/
5353
go install "${GOLANG_PROTOBUF_GEN}" && \
5454
go install "${GOLANG_GRPC_GEN}"
5555

56-
# Clone MTL, DPDK and xdp-tools repo
57-
WORKDIR ${DPDK_DIR}
58-
RUN git clone --branch main https://${GITHUB_CREDENTIALS}github.com/OpenVisualCloud/Media-Transport-Library "${MTL_DIR}" && \
59-
git -C "${MTL_DIR}" checkout ${MTL_VER} && \
60-
git clone --branch v${DPDK_VER} --depth 1 https://github.com/DPDK/dpdk.git "${DPDK_DIR}" && \
61-
git clone --recurse-submodules https://github.com/xdp-project/xdp-tools.git "${XDP_DIR}" && \
62-
git clone --depth 1 --branch "${LIBFABRIC_VER}" https://github.com/ofiwg/libfabric "${LIBFABRIC_DIR}" && \
63-
git clone --branch ${GPRC_VER} --recurse-submodules --depth 1 --shallow-submodules https://github.com/grpc/grpc "${GRPC_DIR}" && \
64-
git clone https://github.com/OpenVisualCloud/SVT-JPEG-XS "${JPEGXS_DIR}" && \
65-
git -C ${JPEGXS_DIR} checkout ${JPEGXS_VER} && \
66-
patch -p1 -i <(cat "${MTL_DIR}/patches/dpdk/${DPDK_VER}/"*.patch)
67-
RUN patch -d "${DPDK_DIR}" -p1 < "${MTL_DIR}/patches/dpdk/${DPDK_VER}/hdr_split/"*.patch || true
68-
RUN patch -d "${DPDK_DIR}" -p1 < "${MTL_DIR}/patches/dpdk/${DPDK_VER}/tsn/"*.patch || true
69-
70-
# Build the xdp-tools project
71-
WORKDIR ${XDP_DIR}
72-
RUN ./configure && \
73-
make && \
74-
make install && \
75-
DESTDIR="${PREFIX_DIR}" make install && \
76-
make -C "${XDP_DIR}/lib/libbpf/src" && \
77-
make -C "${XDP_DIR}/lib/libbpf/src" install && \
78-
DESTDIR="${PREFIX_DIR}" make -C "${XDP_DIR}/lib/libbpf/src" install
79-
80-
WORKDIR ${LIBFABRIC_DIR}
81-
RUN ./autogen.sh && \
82-
./configure --enable-verbs && \
83-
make "-j$(nproc)" && \
84-
make install && \
85-
DESTDIR="${PREFIX_DIR}" make install
86-
87-
# Build the DPDK
88-
WORKDIR ${DPDK_DIR}
89-
RUN meson setup build && \
90-
ninja -C build && \
91-
meson install -C build && \
92-
DESTDIR="${PREFIX_DIR}" meson install -C build
93-
94-
# Build MTL
95-
WORKDIR ${MTL_DIR}
96-
RUN ./build.sh && \
97-
DESTDIR="${PREFIX_DIR}" meson install -C build
98-
99-
# gRPC
100-
WORKDIR ${GRPC_DIR}/cmake/build
101-
RUN cmake -DgRPC_BUILD_TESTS=OFF -DgRPC_INSTALL=ON ../.. && \
102-
make "-j$(nproc)" && \
103-
make install && \
104-
cmake -DgRPC_BUILD_TESTS=ON -DgRPC_INSTALL=ON ../.. && \
105-
make "-j$(nproc)" grpc_cli && \
106-
cp grpc_cli "${PREFIX_DIR}/usr/local/bin/"
107-
108-
# Build and install JPEG XS
109-
WORKDIR ${JPEGXS_DIR}/Build/linux
110-
RUN ./build.sh release install && \
111-
./build.sh release --prefix "${PREFIX_DIR}/usr/local" install
112-
113-
# Build and install JPEG XS imtl plugin
114-
WORKDIR ${JPEGXS_DIR}/imtl-plugin
115-
RUN ./build.sh build-only && \
116-
DESTDIR="${PREFIX_DIR}" meson install --no-rebuild -C build && \
117-
mkdir -p /install/usr/local/etc/ && \
118-
cp ${JPEGXS_DIR}/imtl-plugin/kahawai.json /install/usr/local/etc/jpegxs.json
56+
WORKDIR "${MCM_DIR}"
57+
RUN scripts/setup_build_env.sh
11958

12059
# Build MCM
12160
WORKDIR ${MCM_DIR}

versions.env

100644100755
File mode changed.

0 commit comments

Comments
 (0)