Podman (docker) fedora httpd, mariadb

Fórumok

Üdv,

Egy fedora konténerben szeretném használni a httpd és mariadb-t.

A Dockerfile-ban:

FROM fedora:latest

# packages
RUN dnf -y update && dnf -y install httpd php php-mbstring php-pdo mariadb-server && dnf clean all


# entrypoint, run
# RUN ["/usr/bin/mariadbd-safe"]
ENTRYPOINT /usr/sbin/httpd -DFOREGROUND

Az apache el is indul. Hogyan tudom elindítani a mariadb-t? A mariadbd-safe nem indul el:

# mariadbd-safe
221126 16:26:39 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
221126 16:26:39 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql

A konténerben kézzel sem indul. Mit hagyok ki?

Hozzászólások

Már majdnem jó:

RUN mariadb-install-db
ENTRYPOINT /usr/sbin/httpd -DFOREGROUND
CMD ["/usr/sbin/mariadbd", "-u", "root"]

A konténerben a "mariadbd -u root" fut szépen (manuális indítással). A Dockerfile-ból nem hajtja végre. Mit rontok el?

A konténerizáció egyik jóságának kihasználása lenne, ha az Apache és a MariaDB külön konténerekben futna... A POD, mint "entitás" is így definiálódik: "Pods are the smallest, most basic deployable objects in Kubernetes. A Pod represents a single instance of a running process in your cluster. Pods contain one or more containers, such as Docker containers." A podman pedig ezek menedzselését hivatott megvalósítani. 

A gyors gondolat többet ér, mint a gyors mozdulat.

Főleg, hogy alapból lehet, más módon skálázódnak, DB-ből elég 2 pod, appból meg 14, így meg elveszted a szabadságod.

Illetve a podok vágóállatok, nem kiskedvencek, ha meghal egy-kettő app pod, nem dől össze a világ, simán lehet, hogy nincs akkora terhelés, és auto leskálázta az orchestrator.

És akkor el is érkeztünk a gracefull shutdown problémákhoz.

Így jónak tűnik:

start.sh:

#!/bin/bash

/usr/sbin/httpd -DFOREGROUND &
/usr/sbin/mariadbd -u root

 

Dockerfile:

COPY start.sh /start.sh

ENTRYPOINT /start.sh

A probléma ezzel az lesz, hogy elveszik a SIGTERM és nem lesz gracefull shutdownod.

Mivel az emberek összekeverik a podokat és a containereket, így inkább bevezették az --init flaget.

Ami meg egyéb problémákat okoz, ha pl statefull az app, és leállítás előtt el kéne menteni az állapotát, de te meg előtte leállítod a DB-t.

https://stackoverflow.com/questions/68523106/docker-bash-shell-script-d…

tudom nem ez volt a kérdés, de miért nem indítasz két konténert?

egy hivatalos mariadb-t, és a saját php+apache konténeredet?