Tại thời điểm tôi tìm thấy cùng một vấn đề trong Haproxy Dockerfile. Có lẽ đó là một cái gì đó mà tôi không nắm bắt được. Dù sao một giải pháp đơn giản:
Để tạo một bối cảnh docker đơn giản để gửi:
mkdir haproxy && cd haproxy
Tạo một Dockerfile như sau:
TỪ debian:bullseye-slim
CHẠY bộ -eux; \
groupadd --gid 99 --system haproxy; \
người dùng \
--gid haproxy \
--home-dir /var/lib/haproxy \
--no-tạo-nhà \
--hệ thống \
--uid 99 \
haproxy \
; \
mkdir/var/lib/haproxy; \
chown haproxy: haproxy /var/lib/haproxy
ENV HAPROXY_VERSION 2.5.4
ENV HAPROXY_URL https://www.haproxy.org/download/2.5/src/haproxy-2.5.4.tar.gz
ENV HAPROXY_SHA256 dc4015d85c7fef811b459803b763001d809b07a9251dc1864fedb9a07b44aefb
CHẠY bộ -eux; \
\
đã lưuAptMark="$(apt-mark showmanual)"; \
apt-get update && apt-get install -y --no-install-recommends \
chứng chỉ ca \
gcc \
libc6-dev \
liblua5.3-dev \
libpcre2-dev \
libssl-dev \
chế tạo \
quên \
; \
rm -rf /var/lib/apt/lists/*; \
\
wget -O haproxy.tar.gz "$HAPROXY_URL"; \
tiếng vang "$HAPROXY_SHA256 *haproxy.tar.gz" | sha256sum -c; \
mkdir -p /usr/src/haproxy; \
tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1; \
rm haproxy.tar.gz; \
\
makeOpts=' \
MỤC TIÊU=linux-glibc \
USE_GETADDRINFO=1 \
USE_LUA=1 LUA_INC=/usr/include/lua5.3 \
USE_OPENSSL=1 \
USE_PCRE2=1 USE_PCRE2_JIT=1 \
SỬ DỤNG_PROMEX=1 \
\
EXTRA_OBJS="\
" \
'; \
dpkgArch="$(dpkg --print-architecture)"; \
trường hợp "$dpkgArch" trong \
armel) makeOpts="$makeOpts ADDLIB=-latomic" ;; \
esac; \
\
nproc="$(nproc)"; \
eval "make -C /usr/src/haproxy -j '$nproc' all $makeOpts"; \
eval "make -C /usr/src/haproxy install-bin $makeOpts"; \
\
mkdir -p /usr/local/etc/haproxy; \
cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors; \
rm -rf /usr/src/haproxy; \
\
apt-mark auto '.*' > /dev/null; \
[ -z "$savedAptMark" ] || thủ công apt-mark $savedAptMark; \
tìm /usr/local -type f -executable -exec ldd '{}' ';' \
| awk '/=>/ { in $(NF-1) }' \
| sắp xếp -u \
| xargs -r dpkg-query --search \
| cắt -d: -f1 \
| sắp xếp -u \
| hướng dẫn sử dụng xargs -r apt-mark \
; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
\
haproxy -v
TÍN HIỆU DỪNG SIGUSR1
SAO CHÉP docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT ["docker-entrypoint.sh"]
NGƯỜI DÙNG
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]
Sau đó tạo docker-entrypoint.sh như sau:
chạm vào docker-entrypoint.sh
và dán nội dung sau:
#!/bin/sh
đặt -e
nếu [ "${1#-}" != "$1" ]; sau đó
đặt -- haproxy "$@"
fi
nếu [ "$1" = 'haproxy' ]; sau đó
thay đổi
đặt -- haproxy -W -db "$@"
fi
thực thi "$@"
Sau các bước này, bạn có thể xây dựng hình ảnh haproxy đang hoạt động của mình: docker build -t haproxy .