Webserver in docker

Hallo zusammen,

ich hab mir gedacht, dass es doch was ganz einfaches sein sollte, wenn man in docker zum bestehenden linuxmuster-mrbs noch einen Webserver dazu schmeißt, der den Vertretungsplan für Lehrer bereithält (htaccess geschützt).
Dann könnte ich die Daten vom share, wo die Vertretungsplanmacher den Plan erstellen per scp in den webserver schicken: gut ist.
Aber ich versage schon beim „lass den Webserver irgendwelche Seiten anzeigen“.
Ich hab schon fast alle suchergebnisse nach „simple webserver docker“ durchgelesen: es will aber nicht.

Rahmenbedingung:
bei mir läuft der nginx als reverseproxy auf dem dockerhost.
Dort ist ebenfalls dehydrated installiert.
Das Zertifikat wird auch geholt für
web.meinserver.de
Genauso wie für
mrbs.meinserver.de

Alles gut bis dahin.
Hier mal meine mrbs config, wie sie funktioniert und produktiv läuft:

version: '2'
services:
  db:
    container_name: mariadb
    restart: always
    image: mariadb:latest
    environment:
      MYSQL_ROOT_PASSWORD: GeHeim
    volumes:
      - ./mariadb-data:/var/lib/mysql
  mrbs1:
    depends_on:
      - db
    container_name: raumbuchung
    restart: always
    image: hgkvplan/linuxmuster-mrbs:latest
    environment:
        MRBS_DB_HOST: db
        MRBS_DB_PORT: 3306
        MRBS_DB_USER: mrbsdbuser
        MRBS_DB_PASSWORD: GeHeim
        MRBS_DB_NAME: mrbs_raumbuchung
        MYSQL_ROOT_PASSWORD: GeHeim
    ports:
      - "127.0.0.1:7777:80"
    volumes:
      - ./config/raumbuchung.inc.php:/var/www/html/config.inc.php
      - ./dbdumps/:/var/linuxmuster-mrbs

Und so sieht die nginx config dazu aus:
/etc/nginx/sites-enabled/mrbs.meinserver.de

upstream backend {
   server localhost:7777;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mrbs_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
    listen 80;
    listen [::]:80;
    server_name mrbs.meinserver.de;
    return 301 https://mrbs.meinserver.de$request_uri;
    }

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name    mrbs.meinserver.de;

    ssl_certificate /var/lib/dehydrated/certs/mrbs.meinserver.de/fullchain.pem;
    ssl_certificate_key /var/lib/dehydrated/certs/mrbs.meinserver.de/privkey.pem;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache  mrbs_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://backend;
    }
}

das tut so.
Also hab ich mir folgende webserverconfig gemacht:
/srv/docker/web/docker-compose.yml

version: '2'

services:
  apache:
    container_name: web
    image: 'bitnami/apache:latest'
    ports:
      - '127.0.0.1:7700:80'
    volumes:
      - /srv/docker/web/app:/app

Die /etc/nginx/sites-enabled/web.meinserver.de
sieht so aus:

upstream web {
   server localhost:7700;
   keepalive 32;
}

server {
    listen 80;
    listen [::]:80;
    server_name web.meinserver.de;
    return 301 https://web.meinserver.de$request_uri;
    }
proxy_cache_path /var/cache/nginx-hib levels=1:2 keys_zone=web_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name    web.meinserver.de;

    ssl_certificate /var/lib/dehydrated/certs/web.meinserver.de/fullchain.pem;
    ssl_certificate_key /var/lib/dehydrated/certs/web.meinserver.de/privkey.pem;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache web_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://web;
    }
}

Ruf ich im Browser
https://web.meinserver.de auf so bekomme ich immer
502 Bad Gateway

Der container läuft aber, sagt docker ps:

d612611884bd bitnami/apache:latest „/entrypoint.sh /run…“ 5 days ago Up 5 days 8080/tcp, 8443/tcp, 127.0.0.1:7700->80/tcp web

… und ich hab schon viel dran rumgeschraubt.
Irgendwo schein ich was nicht richtig zu verstehen…
Kann jemand was sehen, was ich verpaße?

LG

Holger

So sorry, Holger, hab noch keine Zeit gefunden, bei mir den Frankschen nginx dockerhost zu installieren. Bei mir läuft immernoch der docker-interne nginx.

würdest du denn im log sehen, wenn beim Apache etwas ankäme? also, kannst du dich mit docker exec -it web /bin/bash einloggen und kannst z.b. wget http://localhost machen?

Dann siehst du mal, ob im log was auftaucht.

Dementsprechend könntest du ja direkt vom dockerhost aus wget localhost:7777 machen und dich so vortasten.

Auf Anhieb kann ich deine Kopie der nginx-konfig verstehen…

VG, Tobias