Skip to content

Commit 8d81c9b

Browse files
authored
H2O: Reduce the Docker image build time (#10275)
Signed-off-by: Anton Kirilov <[email protected]>
1 parent b648eb3 commit 8d81c9b

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

frameworks/C/h2o/CMakeLists.txt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ find_path(PQ_INCLUDE postgresql/libpq-fe.h REQUIRED)
1919
find_path(YAJL_INCLUDE yajl/yajl_gen.h REQUIRED)
2020
find_program(BPFTOOL_BIN bpftool REQUIRED)
2121
find_program(CLANG_BIN clang REQUIRED)
22-
include_directories(src ${CMAKE_BINARY_DIR}/generated-headers ${BPF_INCLUDE} ${H2O_INCLUDE})
23-
include_directories(${MUSTACHE_C_INCLUDE} ${NUMA_INCLUDE} ${OPENSSL_INCLUDE} ${PQ_INCLUDE})
24-
include_directories(${YAJL_INCLUDE})
22+
include_directories(src ${CMAKE_BINARY_DIR} ${BPF_INCLUDE} ${H2O_INCLUDE} ${MUSTACHE_C_INCLUDE})
23+
include_directories(${NUMA_INCLUDE} ${OPENSSL_INCLUDE} ${PQ_INCLUDE} ${YAJL_INCLUDE})
2524
set(CMAKE_C_STANDARD 11)
2625
set(CMAKE_C_STANDARD_REQUIRED ON)
2726
add_compile_definitions(H2O_USE_LIBUV=0)
@@ -32,7 +31,7 @@ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_FORTIFY_SOURCE=2")
3231
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
3332
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O3")
3433
add_custom_command(
35-
OUTPUT ${CMAKE_BINARY_DIR}/generated-headers/socket_load_balancer.h
34+
OUTPUT ${CMAKE_BINARY_DIR}/socket_load_balancer.h
3635
COMMAND ${CLANG_BIN}
3736
-c
3837
-DNDEBUG
@@ -47,12 +46,12 @@ add_custom_command(
4746
${WARNING_OPTIONS}
4847
${CMAKE_CURRENT_SOURCE_DIR}/src/bpf/socket_load_balancer.c
4948
COMMAND ${BPFTOOL_BIN} gen skeleton ${CMAKE_BINARY_DIR}/socket_load_balancer.o >
50-
${CMAKE_BINARY_DIR}/generated-headers/socket_load_balancer.h
49+
${CMAKE_BINARY_DIR}/socket_load_balancer.h
5150
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/bpf/socket_load_balancer.c
5251
VERBATIM)
5352
add_custom_target(
5453
generated_headers
55-
DEPENDS ${CMAKE_BINARY_DIR}/generated-headers/socket_load_balancer.h)
54+
DEPENDS ${CMAKE_BINARY_DIR}/socket_load_balancer.h)
5655
file(GLOB_RECURSE HANDLER_SOURCES "src/handlers/*.c")
5756
file(GLOB SOURCES "src/*.c")
5857
add_executable(${PROJECT_NAME} ${HANDLER_SOURCES} ${SOURCES})

frameworks/C/h2o/h2o.dockerfile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ ARG UBUNTU_VERSION=25.10
22

33
ARG H2O_APP_PREFIX=/opt/h2o-app
44

5-
FROM "ubuntu:${UBUNTU_VERSION}" AS compile
5+
FROM "buildpack-deps:${UBUNTU_VERSION}" AS compile
66

77
RUN echo "[timing] Installing system packages: $(date)"
88
ARG DEBIAN_FRONTEND=noninteractive
@@ -24,15 +24,12 @@ RUN apt-get install \
2424
libnuma-dev \
2525
libpq-dev \
2626
libssl-dev \
27-
libstdc++-15-dev \
2827
libtool \
2928
liburing-dev \
3029
libuv1-dev \
31-
libwslay-dev \
3230
libyajl-dev \
3331
libz-dev \
3432
make \
35-
ninja-build \
3633
pkg-config \
3734
ruby \
3835
systemtap-sdt-dev
@@ -47,7 +44,6 @@ RUN curl -LSs "https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz" | \
4744
-B build \
4845
-DCMAKE_C_FLAGS="-flto=auto -march=native -mtune=native" \
4946
-DWITH_MRUBY=on \
50-
-G Ninja \
5147
-S . && \
5248
cmake --build build -j && \
5349
cmake --install build
@@ -72,7 +68,6 @@ RUN cmake \
7268
-DCMAKE_BUILD_TYPE=Release \
7369
-DCMAKE_C_FLAGS="-march=native -mtune=native" \
7470
-DCMAKE_INSTALL_PREFIX="${H2O_APP_PREFIX}" \
75-
-G Ninja \
7671
-S .. && \
7772
cmake --build . -j && \
7873
cmake --install .

0 commit comments

Comments
 (0)