Skip to content

installation de mercator via docker-compose.yml #1761

@jlm-gh

Description

@jlm-gh

J'essaye d'installer Mercator via docker-compose. Je n'utilise pas la partie reverse-proxy Nginx car j'utilise Traefik, donc cette partie a été commentée

Le conteneur s'exécute néanmoins j'obtiens avec un curl sur l'adresse IP interne du conteneur

curl 172.18.0.2:8080

<br />
<b>Warning</b>:  include(/var/www/mercator/app/Http/Kernel.php): Failed to open stream: Permission denied in <b>/var/www/mercator/vendor/composer/ClassLoader.php</b> on line <b>576</b><br />
<br />
<b>Warning</b>:  include(): Failed opening '/var/www/mercator/vendor/composer/../../app/Http/Kernel.php' for inclusion (include_path='.:/usr/local/lib/php') in <b>/var/www/mercator/vendor/composer/ClassLoader.php</b> on line <b>576</b><br />
<br />
<b>Fatal error</b>:  Uncaught ReflectionException: Class &quot;App\Http\Kernel&quot; does not exist in /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php:959
Stack trace:
#0 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(959): ReflectionClass-&gt;__construct('App\\Http\\Kernel')
#1 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container-&gt;build('App\\Http\\Kernel')
#2 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container-&gt;resolve('App\\Http\\Kernel', Array, false)
#3 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(324): Illuminate\Foundation\Application-&gt;resolve('App\\Http\\Kernel', Array, false)
#4 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(952): Illuminate\Container\Container-&gt;Illuminate\Container\{closure}(Object(Illuminate\Foundation\Application), Array)
#5 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container-&gt;build(Object(Closure))
#6 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container-&gt;resolve('Illuminate\\Cont...', Array, true)
#7 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(763): Illuminate\Foundation\Application-&gt;resolve('Illuminate\\Cont...', Array)
#8 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\Container\Container-&gt;make('Illuminate\\Cont...', Array)
#9 /var/www/mercator/public/index.php(50): Illuminate\Foundation\Application-&gt;make('Illuminate\\Cont...')
#10 {main}

Next Illuminate\Contracts\Container\BindingResolutionException: Target class [App\Http\Kernel] does not exist. in /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php:961
Stack trace:
#0 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container-&gt;build('App\\Http\\Kernel')
#1 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container-&gt;resolve('App\\Http\\Kernel', Array, false)
#2 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(324): Illuminate\Foundation\Application-&gt;resolve('App\\Http\\Kernel', Array, false)
#3 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(952): Illuminate\Container\Container-&gt;Illuminate\Container\{closure}(Object(Illuminate\Foundation\Application), Array)
#4 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(832): Illuminate\Container\Container-&gt;build(Object(Closure))
#5 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1078): Illuminate\Container\Container-&gt;resolve('Illuminate\\Cont...', Array, true)
#6 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php(763): Illuminate\Foundation\Application-&gt;resolve('Illuminate\\Cont...', Array)
#7 /var/www/mercator/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1058): Illuminate\Container\Container-&gt;make('Illuminate\\Cont...', Array)
#8 /var/www/mercator/public/index.php(50): Illuminate\Foundation\Application-&gt;make('Illuminate\\Cont...')
#9 {main}
  thrown in <b>/var/www/mercator/vendor/laravel/framework/src/Illuminate/Container/Container.php</b> on line <b>961</b><br />

Si j'essaye la commande php artisan migrate:fresh --seed --force dans le conteneur, j'obtiens ceci.

docker exec -it mercator /bin/bash

bd1a1b2cc82c:/var/www/mercator$ php artisan migrate:fresh --seed --force

   ErrorException 

  include(/var/www/mercator/app/Http/Kernel.php): Failed to open stream: Permission denied

  at vendor/composer/ClassLoader.php:576
    572▕          * @param  string $file
    573▕          * @return void
    574▕          */
    575▕         self::$includeFile = \Closure::bind(static function($file) {
  ➜ 576▕             include $file;
    577▕         }, null, null);
    578▕     }
    579▕ }
    580▕ 

      +2 vendor frames 

  3   [internal]:0
      Composer\Autoload\ClassLoader::loadClass("App\Http\Kernel")
      +18 vendor frames 

  22  [internal]:0
      Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(Laravel\Sanctum\SanctumServiceProvider), "Laravel\Sanctum\SanctumServiceProvider")

Voici mes configurations, assez classique

egrep -v \# env/mercator.env

APP_ENV=production
APP_DEBUG=true
APP_URL=https://mercator-app.example.com/
DB_PASSWORD=1234
DB_ROOT_PASSWORD=5678

egrep -v \# docker-compose.yml

services:
  mercator:
    image: ghcr.io/dbarzin/mercator:latest
    restart: unless-stopped
    container_name: mercator
    volumes:
      - ./PV/mercator/db.sqlite/:/var/www/mercator/sql/db.sqlite
      - ./env/mercator.env:/var/www/mercator/.env
      - ./docs:/var/www/mercator/storage/docs
      - ../app/Http/Kernel.php:/var/www/mercator/app/Http/Kernel.php
      - ../app/Http/Middleware/ForceXForwardedProto.php:/var/www/mercator/app/Http/Middleware/ForceXForwardedProto.php
    labels:
      - traefik.enable=true
      - traefik.http.routers.mercator.rule=Host(`mercator.example.com`)
      - traefik.http.routers.mercator.tls.certResolver=letsencrypt
      - traefik.http.routers.mercator.middlewares=secure-headers@file
      - traefik.http.routers.mercator.middlewares=ipallowlist@file
      - traefik.http.routers.mercator.entrypoints=websecure
      - traefik.http.services.mercator.loadbalancer.server.port=443
    environment:
      - APP_URL=https://mercator-app.example.com/
      - ASSET_URL=https://mercator-app.example.com/

Comment peut-on résoudre ces soucis ?

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions