Tartalomjegyzék

Konténer készítés

Konténer image készítése meglevő chroot környezetből

Előkészítés

# dnf install tar podman-compose

Környezet kialakítása

# mkdir /tmp/nginx

# cd /opt/eszfk/app-nginx

# tar -czf /tmp/nginx/rootfs.tar.gz .

# cd /tmp/nginx

# cat > Containerfile <<'EOF'
FROM scratch

ADD rootfs.tar.gz /

CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
EOF

# podman build -t eszfk-nginx:latest .
STEP 1/3: FROM scratch
STEP 2/3: ADD rootfs.tar.gz /
--> 86cd93e29382
STEP 3/3: CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
COMMIT eszfk-nginx:latest
--> 84254f0d16f2
Successfully tagged localhost/eszfk-nginx:latest
84254f0d16f2729f9861bc89730de62b280b8e5b80f490c326dbec3493a5d348

podman compose file készítése

# cat > container-compose.yaml <<'EOF'
services:
  eszfk-web:
    container_name: eszfk-web
    build:
      context: .
      dockerfile: Containerfile
    image: eszfk-nginx:latest
    ports:
      - "80:80"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--spider", "--quiet", "--timeout=3", "http://127.0.0.1/"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s
EOF

# podman-compose build
STEP 1/3: FROM scratch
STEP 2/3: ADD rootfs.tar.gz /
--> Using cache 8cb83c2fc3248c1c8767ff7fc7b57d9ddb1340ba8873915a0132d77f25e90eaf
--> 8cb83c2fc324
STEP 3/3: CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
--> Using cache bd3d096787eff01695c5770cd951fb1398db1f6454efc2395cb9756dad553a64
COMMIT local/eszfk-nginx:latest
--> bd3d096787ef
Successfully tagged localhost/eszfk-nginx:latest
bd3d096787eff01695c5770cd951fb1398db1f6454efc2395cb9756dad553a64

# podman-compose up -d
d86a20163b5a97e4c55df3c3b69240f987b6ade810303795235d2cc2b42b1c9a
b6fe80ec8bd9a56a9650cde7f01fe12359f3c343f0a31c5ec070a116e18b0746
eszfk-web

# podman-compose ps
CONTAINER ID  IMAGE                               COMMAND               CREATED         STATUS                   PORTS               NAMES
b6fe80ec8bd9  localhost/eszfk-nginx:latest  /usr/sbin/nginx -...  18 seconds ago  Up 18 seconds (healthy)  0.0.0.0:80->80/tcp  eszfk-web

# curl http://127.0.0.1
ESZFK nginx szerver

# podman-compose down
eszfk-web
eszfk-web
d86a20163b5a97e4c55df3c3b69240f987b6ade810303795235d2cc2b42b1c9a
nginx_default

# podman images
REPOSITORY               TAG         IMAGE ID      CREATED         SIZE
localhost/eszfk-nginx    latest      1a92706bcb68  19 seconds ago  23.1 MB

Építés és futtatás

# podman-compose up -d --build
STEP 1/3: FROM scratch
STEP 2/3: ADD rootfs.tar.gz /
--> 6c26f1729037
STEP 3/3: CMD ["/usr/sbin/nginx", "-g", "daemon off;"]
COMMIT eszfk-nginx:latest
--> e8e4cf0ac4f9
Successfully tagged localhost/eszfk-nginx:latest
e8e4cf0ac4f90d4c70fef3448df7a4671fb73fad185d592cfa600c1d4a1d0c3e
6fb8e3f9e9c3301dc5c7753dfd43dd02ee0d01dc87520bcb84665af19abbb24d
f09995baf3678b59563cbb9b36b4aa755e89fd1e17e7f99fd976e1a0daad6844
eszfk-web

# podman-compose ps
CONTAINER ID  IMAGE                         COMMAND               CREATED        STATUS                  PORTS               NAMES
f09995baf367  localhost/eszfk-nginx:latest  /usr/sbin/nginx -...  9 seconds ago  Up 9 seconds (healthy)  0.0.0.0:80->80/tcp  eszfk-web

# podman images
REPOSITORY               TAG         IMAGE ID      CREATED         SIZE
localhost/eszfk-nginx    latest      e8e4cf0ac4f9  15 seconds ago  23.1 MB

Módosítások

Másolás konténerből

# podman cp eszfk-web:/etc/nginx/nginx.conf /tmp/nginx.conf

# ls -l /tmp/nginx.conf 
-rw-r--r--. 1 root root 954 Mar 24 10:23 /tmp/nginx.conf

Másolás konténerbe

# podman cp /tmp/nginx.conf eszfk-web:/etc/nginx/nginx.conf

# podman exec eszfk-web /usr/sbin/nginx -s reload
2026/03/25 04:33:09 [notice] 34#34: signal process started

A változások el fognak veszni.

Új build

cat > Containerfile <<EOF
FROM nginx-scratch

COPY nginx.conf /etc/nginx/nginx.conf
# COPY --chown=nginx:nginx nginx.conf /etc/nginx/nginx.conf
EOF