Puncte:0

HAProxy - Nu se poate face un chroot /var/lib/haproxy

drapel in

Încerc să rulez haproxy în docker urmând acest articol de pe blogul haproxy. https://www.haproxy.com/blog/haproxy-on-docker-swarm-load-balancing-and-dns-service-discovery/ Primesc următoarea eroare Nu se poate face un chroot /var/lib/haproxy

hap_haproxy.3.j24pbth7qsup@prox1 | [NOTĂ] (1): Noul lucrător #1 (9) a fost bifurcat
hap_haproxy.3.j24pbth7qsup@prox1 | [NOTIZARE] (9): versiunea haproxy este 2.4.7-b5e51a5
hap_haproxy.3.j24pbth7qsup@prox1 | [NOTĂ] (9): calea către executabil este /usr/local/sbin/haproxy
hap_haproxy.3.j24pbth7qsup@prox1 | [ALERTĂ] (9): [haproxy.main()] Nu se poate efectua chroot(/var/lib/haproxy).
hap_haproxy.3.j24pbth7qsup@prox1 | [AVERTISMENT] (1): Lucrătorul actual #1 (9) a ieșit cu codul 1 (Ieșire)

Iată configurația mea haproxy

global
    log fd@2 local2
# log stdout format raw local0 info
    chroot /var/lib/haproxy
    pidfile /var/lib/haproxy/haproxy.pid
    maxconn 4000
    utilizator haproxy 
    haproxy de grup
    socket statistici /var/lib/haproxy/stats utilizator grup haproxy mod haproxy nivel 660 admin ascultători expose-fd
    maestru-muncitor

docker pentru rezolutori
    serverul de nume dns1 127.0.0.11:53
    resolve_retry 3
    timeout rezolvare 1s
    timeout reîncercați 1s
    tine alte 10s
    hold refuzat 10s
    ține nx 10s
    țineți timeout 10s
    păstrați valabil 10s
    țineți 10s învechiți

implicite
    timeout connect 10s
    timeout client 30s
    timeout server 30s
    jurnal global
    modul http
    opțiunea httplog

frontend fe_web
    lega*:8080
    use_backend stat dacă { calea -i /stats }
    default_backend be_service

backend be_service
    echilibru roundrobin
    server-template nginx- 6 nginx-Service:80 verifica soluții docker init-addr libc,none

backend be_service_wrong_case
    echilibru roundrobin
    server-template nginx- 6 nginx-service:80 verifica soluții docker init-addr libc,none

stat backend
    statisticile permit
    stats uri /stats
    statisticile reîmprospătează 15 secunde
    statistici arată-legende
    statistici show-node

Am verificat fișierul docker al imaginii oficiale și calea /var/lib/haproxy este creat. Poate cineva să-mi spună, vă rog, ce nu merge bine? (editat)

Puncte:0
drapel us

Momentan am găsit aceeași problemă în Haproxy Dockerfile. Poate că este ceva ce nu prind. Oricum o solutie simpla:

Pentru a crea un context docker simplu de trimis:

mkdir haproxy && cd haproxy

Creeaza o Dockerfile după cum urmează:

DE LA debian:bullseye-slim

# aproximativ, https://salsa.debian.org/haproxy-team/haproxy/-/blob/732b97ae286906dea19ab5744cf9cf97c364ac1d/debian/haproxy.postinst#L5-6
RUN set -eux; \
    groupadd --gid 99 --system haproxy; \
    useradd\
        --gid haproxy \
        --home-dir /var/lib/haproxy \
        --no-create-home \
        --sistem \
        --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

# consultați https://sources.debian.net/src/haproxy/jessie/debian/rules/ pentru o navigare utilă a posibilelor argumente „make”
RUN set -eux; \
    \
    savedAptMark="$(manual de prezentare apt-mark)"; \
    apt-get update && apt-get install -y --no-install-recommends \
        certificate ca \
        gcc \
        libc6-dev \
        liblua5.3-dev \
        libpcre2-dev \
        libssl-dev \
        face \
        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=' \
        TARGET=linux-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)"; \
    cazul „$dpkgArch” în \
        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" ] || manualul apt-mark $savedAptMark; \
    găsiți /usr/local -type f -executable -exec ldd '{}' ';' \
        | awk '/=>/ { print $(NF-1) }' \
        | sortează -u \
        | xargs -r dpkg-query --search \
        | tăiați -d: -f1 \
        | sortează -u \
        | xargs -r apt-mark manual \
    ; \
    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
    \
# test de fum
    haproxy -v

# https://www.haproxy.org/download/1.8/doc/management.txt
# „4. Oprirea și repornirea HAProxy”
# „când semnalul SIGTERM este trimis către procesul haproxy, acesta se închide imediat și toate conexiunile stabilite sunt închise”
# „oprirea grațioasă este declanșată când semnalul SIGUSR1 este trimis către procesul haproxy”
SEMNAL DE OPRIRE SIGUSR1

COPIEAZĂ docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT [„docker-entrypoint.sh”]

UTILIZATOR haproxy
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]

Apoi creați docker-entrypoint.sh după cum urmează:

atingeți docker-entrypoint.sh

și lipiți următorul conținut:

#!/bin/sh
set -e

# primul argument este `-f` sau `--some-option`
if [ "${1#-}" != "$1" ]; atunci
    set -- haproxy „$@”
fi

if [ "$1" = 'haproxy' ]; atunci
    shift # „haproxy”
    # dacă utilizatorul dorește „haproxy”, să adăugăm câteva steaguri utile
    # -W -- „modul master-worker” (similar vechiului „haproxy-systemd-wrapper”; permite reîncărcarea prin „SIGUSR2”)
    # -db -- dezactivează modul de fundal
    set -- haproxy -W -db "$@"
fi

exec „$@”

După acești pași, vă puteți construi imaginea haproxy de lucru: docker build -t haproxy .

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.