Score:0

HAProxy - ไม่สามารถ chroot /var/lib/haproxy.h

ธง in

ฉันกำลังพยายามเรียกใช้ haproxy ใน docker โดยติดตามบทความนี้จากบล็อก haproxy https://www.haproxy.com/blog/haproxy-on-docker-swarm-load-balancing-and-dns-service-discovery/ ฉันได้รับข้อผิดพลาดต่อไปนี้ ไม่สามารถ chroot /var/lib/haproxy.dll

hap_haproxy.3.j24pbth7qsup@prox1 | [ประกาศ] (1) : พนักงานใหม่ #1 (9) แยก
hap_haproxy.3.j24pbth7qsup@prox1 | [ประกาศ] (9): รุ่น haproxy คือ 2.4.7-b5e51a5
hap_haproxy.3.j24pbth7qsup@prox1 | [NOTICE] (9) : เส้นทางไปยังปฏิบัติการคือ /usr/local/sbin/haproxy
hap_haproxy.3.j24pbth7qsup@prox1 | [ALERT] (9): [haproxy.main()] ไม่สามารถ chroot(/var/lib/haproxy)
hap_haproxy.3.j24pbth7qsup@prox1 | [คำเตือน] (1) : พนักงานปัจจุบัน #1 (9) ออกด้วยรหัส 1 (ออก)

นี่คือการกำหนดค่า haproxy ของฉัน

ทั่วโลก
    เข้าสู่ระบบ fd@2 local2
# บันทึก stdout จัดรูปแบบข้อมูลดิบ local0
    chroot /var/lib/haproxy
    ไฟล์ pid /var/lib/haproxy/haproxy.pid
    แม็กซ์คอน4000
    ผู้ใช้แฮพร็อกซี 
    กลุ่ม haproxy
    ซ็อกเก็ตสถิติ /var/lib/haproxy/stats ผู้ใช้ haproxy กลุ่ม haproxy โหมด 660 ระดับผู้ดูแลระบบ expose-fd ผู้ฟัง
    นายคนงาน

นักเทียบท่าตัวแก้ไข
    เนมเซิร์ฟเวอร์ DNS1 127.0.0.11:53
    Solve_ลองใหม่ 3
    หมดเวลาแก้ไข 1 วินาที
    หมดเวลาลองใหม่ 1 วินาที
    ถืออีก 10 วินาที
    ถือปฏิเสธ 10 วินาที
    ถือ nx 10s
    กดหมดเวลา 10 วินาที
    ถือ 10s ที่ถูกต้อง
    ถือ 10 วินาทีที่ล้าสมัย

ค่าเริ่มต้น
    หมดเวลาเชื่อมต่อ 10 วินาที
    ไคลเอ็นต์หมดเวลา 30 วินาที
    เซิร์ฟเวอร์หมดเวลา 30 วินาที
    เข้าสู่ระบบทั่วโลก
    โหมด http
    ตัวเลือก httplog

ส่วนหน้า fe_web
    ผูก *:8080
    use_backend stat ถ้า { เส้นทาง -i /stats }
    default_backend be_service

แบ็กเอนด์ be_service
    วงเวียนสมดุล
    แม่แบบเซิร์ฟเวอร์ nginx- 6 nginx-Service:80 ตรวจสอบตัวแก้ไข นักเทียบท่า init-addr libc ไม่มี

แบ็กเอนด์ be_service_wrong_case
    วงเวียนสมดุล
    เทมเพลตเซิร์ฟเวอร์ nginx- 6 nginx-service:80 ตรวจสอบตัวแก้ไข นักเทียบท่า init-addr libc ไม่มี

สถานะแบ็กเอนด์
    เปิดใช้งานสถิติ
    สถิติ uri /stats
    สถิติรีเฟรช 15 วินาที
    สถิติการแสดงตำนาน
    โหนดแสดงสถิติ

ฉันตรวจสอบ dockerfile ของรูปภาพอย่างเป็นทางการและเส้นทาง /var/lib/haproxy ถูกสร้างขึ้น ใครช่วยบอกฉันทีว่าเกิดอะไรขึ้น (แก้ไข)

Score:0
ธง us

ในขณะนี้ฉันพบปัญหาเดียวกันใน Haproxy Dockerfile บางทีมันอาจเป็นสิ่งที่ฉันไม่จับ อย่างไรก็ตามวิธีแก้ปัญหาง่ายๆ:

วิธีสร้างบริบทนักเทียบท่าอย่างง่ายเพื่อส่ง:

mkdir แฮพร็อกซี && ซีดี แฮพร็อกซี

สร้าง ไฟล์นักเทียบท่า ดังนี้

จากเดเบียน:bullseye-slim

#คร่าวๆ https://salsa.debian.org/haproxy-team/haproxy/-/blob/732b97ae286906dea19ab5744cf9cf97c364ac1d/debian/haproxy.postinst#L5-6
ชุด RUN -eux; \
    groupadd --gid 99 --ระบบ haproxy; \
    เพิ่มผู้ใช้ \
        --gid แฮพร็อกซี่ \
        --home-dir /var/lib/haproxy \
        --ไม่สร้างบ้าน \
        --ระบบ \
        --uid 99 \
        แฮพร็อกซี่ \
    ; \
    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

# ดู https://sources.debian.net/src/haproxy/jessie/debian/rules/ สำหรับการนำทางที่เป็นประโยชน์ของอาร์กิวเมนต์ "make" ที่เป็นไปได้
ชุด RUN -eux; \
    \
    saveAptMark="$(apt-mark showmanual)"; \
    apt-get update && apt-get install -y --no-install-recommends \
        ใบรับรอง ca \
        gcc \
        libc6-dev \
        liblua5.3-dev \
        libpcre2-dev \
        libssl-dev \
        ทำ \
        wget \
    ; \
    rm -rf /var/lib/apt/lists/*; \
    \
    wget -O haproxy.tar.gz "$HAPROXY_URL"; \
    echo "$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=' \
        เป้าหมาย = ลินุกซ์-glibc \
        USE_GETADDRINFO=1 \
        USE_LUA=1 LUA_INC=/usr/include/lua5.3 \
        USE_OPENSSL=1 \
        USE_PCRE2=1 USE_PCRE2_JIT=1 \
        USE_PROMEX=1 \
        \
        EXTRA_OBJS=" \
        " \
    '; \
# https://salsa.debian.org/haproxy-team/haproxy/-/commit/53988af3d006ebcbf2c941e34121859fd6379c70
    dpkgArch="$(dpkg --print-architecture)"; \
    กรณี "$dpkgArch" ใน \
        armel) makeOpts="$makeOpts ADDLIB=-latomic" ;; \
    เอสแซค; \
    \
    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" ] || คู่มือ apt-mark $savedAptMark; \
    ค้นหา /usr/local -type f -executable -exec ldd '{}' ';' \
        | awk '/=>/ { พิมพ์ $(NF-1) }' \
        | จัดเรียง -u \
        | xargs -r dpkg-query -- ค้นหา \
        | ตัด -d: -f1 \
        | จัดเรียง -u \
        | คู่มือ xargs -r apt-mark \
    ; \
    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
    \
#ทดสอบควัน
    haproxy -v

# https://www.haproxy.org/download/1.8/doc/management.txt
# "4. การหยุดและรีสตาร์ท HAProxy"
# "เมื่อสัญญาณ SIGTERM ถูกส่งไปยังกระบวนการ haproxy มันจะหยุดทำงานทันทีและการเชื่อมต่อที่สร้างไว้ทั้งหมดจะถูกปิด"
# "การหยุดอย่างสง่างามเกิดขึ้นเมื่อสัญญาณ SIGUSR1 ถูกส่งไปยังกระบวนการ haproxy"
STOPSIGNAL SIGUSR1

คัดลอกนักเทียบท่า-entrypoint.sh /usr/local/bin/
จุดเข้าใช้งาน ["docker-entrypoint.sh"]

USER แฮพร็อกซี
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]

จากนั้นสร้าง docker-entrypoint.sh ดังนี้

แตะ docker-entrypoint.sh

และวางเนื้อหาต่อไปนี้:

#!/bin/sh
ตั้ง -e

# หาเรื่องแรกคือ `-f` หรือ `--some-option`
ถ้า [ "${1#-}" != "$1" ]; แล้ว
    ชุด -- haproxy "$@"
ไฟ

ถ้า [ "$1" = 'haproxy' ]; แล้ว
    กะ # "haproxy"
    # หากผู้ใช้ต้องการ "haproxy" ให้เพิ่มค่าสถานะที่มีประโยชน์
    # -W - "โหมดผู้ปฏิบัติงานหลัก" (คล้ายกับ "haproxy-systemd-wrapper" แบบเก่า อนุญาตให้โหลดซ้ำผ่าน "SIGUSR2")
    # -db - ปิดใช้งานโหมดพื้นหลัง
    ชุด -- haproxy -W -db "$@"
ไฟ

ผู้บริหาร "$@"

หลังจากขั้นตอนเหล่านี้ คุณสามารถสร้างอิมเมจ haproxy ที่ใช้งานได้: นักเทียบท่า build -t haproxy

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา