Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Docker] Déploiement application en https sur vps

Docker, traefik, letsencrypt, apache

    16 février 2023 à 9:37:20

    Bonjour, 

    J'apprends Docker en ce moment, en local tout tourne assez bien, mais lorsque je veux déployer mon container php:8.2-apache sur mon serveur vps (Debian 11), j'ai une erreur gateway timeout. 

    Mon objectif est d'avoir un container php:8.2-apache, un container mysql et un container traefik pour rendre mon application disponnible à cette adresse https://test.ayatadev.com/

    Mon serveur semble bien configuré et les ports nécessaires ouvert, mes logs ne m'affiche pas d'erreur direct et surtout en http cela fonctionnait correctement avant que j'essaie avec letsencrypt.

    Voici mes configs

    DockerFile

    FROM php:8.2-apache
    
    RUN a2enmod ssl rewrite
    
    WORKDIR /var/www/html
    
    COPY . .
    COPY 000-default.conf /etc/apache2/sites-available/
    
    RUN a2ensite 000-default.conf
    
    RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libpq-dev
    
    RUN docker-php-ext-install pdo pdo_mysql gd
    
    CMD ["apachectl", "-D", "FOREGROUND"]
    

    docker-compose pour mon projet web

    version: '3'
    services:
      web:
        build:
          context: ./build/php
          dockerfile: Dockerfile
        volumes:
          - .:/var/www/html
        depends_on:
          - db
        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.web.rule=Host(`test.ayatadev.com`)"
          - "traefik.http.routers.web.entrypoints=websecure"
          - "traefik.http.routers.web.tls.certresolver=myresolver"
        networks:
          - mynet
    
      db:
        build:
          context: ./build/mariadb
          dockerfile: Dockerfile
        ports:
          - "3306:3306"
        environment:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: brain
          MYSQL_USER: user
          MYSQL_PASSWORd: ***********
        networks:
          - mynet
    
    networks:
      mynet:
        driver: bridge

    docker-compose pour mon traefik

    version: '3'
    
    services:
      reverse-proxy:
        image: traefik:2.9
        command: 
          - "--api.insecure=true"
          - "--providers.docker=true"
          - "--entrypoints.web.address=:80"
          - "--entrypoints.websecure.address=:443"
          - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
          - "--certificatesresolvers.myresolver.acme.email=ayatadev@outlook.com"
          - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
        ports:
        - "80:80"
        - "8080:8080"
        - "443:443"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - ./letsencrypt:/letsencrypt


    J'ai aussi configurer un 000-default.conf pour mon container apache

    <VirtualHost *:443>
        ServerName test.ayatadev.com
        ServerAlias www.test.ayatadev.com
        DocumentRoot /var/www/html
    
        <Directory /var/www/html>
            Options -Indexes +FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
        CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
    
    </VirtualHost>

    Mes logs pour le projetWeb

    testprojet-web-1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.28.0.3. Set the 'ServerName' directive globally to suppress this message
    testprojet-web-1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.28.0.3. Set the 'ServerName' directive globally to suppress this message
    testprojet-web-1  | [Thu Feb 16 07:40:39.384498 2023] [mpm_prefork:notice] [pid 8] AH00163: Apache/2.4.54 (Debian) PHP/8.2.3 OpenSSL/1.1.1n configured -- resuming normal operations
    testprojet-web-1  | [Thu Feb 16 07:40:39.385660 2023] [core:notice] [pid 8] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
    root@localhost:/projets/testProjet# 

    Mes logs de traefik

    traefik-reverse-proxy-1  | time="2023-02-16T08:17:11Z" level=info msg="Configuration loaded from flags."

    Le dashboard de traefik m'indique que tout semble correct. Je ne sais pas vraiment où chercher pour configurer. (Apache, docker, traefik, letsencrypt)

    Si vous avez une solution ou juste une idée ?

    Merci d'avance :)




    -
    Edité par Meh 16 février 2023 à 9:38:14

    • Partager sur Facebook
    • Partager sur Twitter

    [Docker] Déploiement application en https sur vps

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown