forked from pen/docker-rep2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
135 lines (107 loc) · 3.86 KB
/
Dockerfile
File metadata and controls
135 lines (107 loc) · 3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
ARG PHP_VERSION="8.5"
ARG ALPINE_VERSION="3.23"
#####
FROM php:${PHP_VERSION}-cli-alpine${ALPINE_VERSION} AS builder
ARG GITHUB_REP2_HASH="e5a5325"
RUN apk --update-cache add \
git \
patch \
gettext-dev \
jpeg-dev \
libpng-dev \
zlib-dev
RUN docker-php-ext-configure gd --with-jpeg
RUN docker-php-ext-install -j$(nproc) gd gettext
WORKDIR /tmp
COPY --from=composer/composer:2.9-bin /composer /usr/local/bin/composer
RUN curl -LO https://github.com/mikoim/p2-php/archive/${GITHUB_REP2_HASH}.zip
RUN unzip ${GITHUB_REP2_HASH}.zip
RUN rm -rf /var/www && mv p2-php-* /var/www
WORKDIR /var/www
COPY patch /tmp
RUN cp /tmp/composer.* . && composer install
RUN rm -r doc
RUN rm -rf `find . -name '.git*' -o -name 'composer.*'`
RUN patch -p1 < /tmp/p2-php.patch
RUN mv conf conf.orig && ln -s /ext/conf conf
RUN mv data data.orig && ln -s /ext/data data
RUN ln -s /ext/rep2/ic rep2/ic
#####
FROM php:${PHP_VERSION}-cli-alpine${ALPINE_VERSION} AS builder2
ARG CODEBERG_PX2C_HASH="c51b5e16e91bbcb436ea73126042bdd47f7445dc" # Version 20260306 snapshot
RUN apk --update-cache add \
curl-dev \
g++ \
gnu-libiconv-dev \
# gnutls-dev \
openssl-dev \
lua5.4-dev \
make \
patch
WORKDIR /root
RUN wget https://codeberg.org/NanashiNoGombe/proxy2ch/archive/${CODEBERG_PX2C_HASH}.tar.gz
RUN tar xzvf ${CODEBERG_PX2C_HASH}.tar.gz
WORKDIR /root/proxy2ch
COPY patch /tmp
RUN patch -p1 < /tmp/proxy2ch.patch
RUN make
#####
FROM php:${PHP_VERSION}-cli-alpine${ALPINE_VERSION} AS builder3
ARG GITHUB_H2O_HASH="a9ba592b904684b8d12e9a825e4a579c31999c2b" # 2026/01/19
RUN apk --update-cache add \
build-base \
cmake \
git \
libuv-dev \
linux-headers \
openssl \
openssl-dev \
perl \
zlib-dev
WORKDIR /root
RUN git clone --depth 1 --revision ${GITHUB_H2O_HASH} --recursive --shallow-submodules https://github.com/h2o/h2o
WORKDIR /root/h2o
RUN cmake -S . -B build && cmake --build build
#####
FROM php:${PHP_VERSION}-cli-alpine${ALPINE_VERSION}
# LABEL org.opencontainers.image.authors="Abe Masahiro <pen@thcomp.org>" \
# org.opencontainers.image.source="https://github.com/pen/docker-rep2"
RUN apk --no-cache add \
sudo \
gettext \
libintl \
libjpeg \
libpng \
perl-http-daemon \
perl-lwp-useragent-determined \
perl-yaml-tiny \
runit \
zlib \
\
# gnutls \
libcurl \
libstdc++ \
lua5.4-libs
COPY --from=builder /usr/local /usr/local
COPY --from=builder /var/www /var/www
COPY --from=builder2 /root/proxy2ch/proxy2ch /usr/local/bin/
# ref: cmake_install.cmake
COPY --from=builder3 /root/h2o/build/h2o /usr/local/bin/
COPY --from=builder3 /root/h2o/include /usr/local/include
COPY --from=builder3 /root/h2o/deps/picotls/include /usr/local/include
COPY --from=builder3 /root/h2o/deps/quicly/include /usr/local/include
COPY --from=builder3 /root/h2o/build/libh2o.pc /usr/local/lib/pkgconfig/
COPY --from=builder3 /root/h2o/build/libh2o-evloop.pc /usr/local/lib/pkgconfig/
COPY --from=builder3 /root/h2o/misc/h2olog /usr/local/bin/
COPY --from=builder3 /root/h2o/share/h2o/annotate-backtrace-symbols /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/fastcgi-cgi /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/fetch-ocsp-response /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/kill-on-close /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/setuidgid /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/start_server /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/ca-bundle.crt /usr/local/share/h2o/
COPY --from=builder3 /root/h2o/share/h2o/status/index.html /usr/local/share/h2o/status/
COPY rootfs /
VOLUME /ext
EXPOSE 80
CMD ["/etc/rc.entry"]