php artisan переносит работы, но get QueryException не может найти ошибку при использовании приложения - PullRequest
0 голосов
/ 25 ноября 2018

Я помещаю свое приложение laravel в кластер Swarm, и вот все связанные файлы

Dockerfile для создания приложения laravel

FROM composer:1.7 as php-builder

COPY database /database
COPY composer.json composer.json
COPY composer.lock composer.lock

RUN composer install \
  --ignore-platform-reqs \
  --no-interaction \
  --no-plugins \
  --no-scripts \
  --no-dev \
  --optimize-autoloader \
  --prefer-dist

FROM node:11-alpine as frontend-builder

RUN mkdir -p /app/public

COPY package.json webpack.mix.js /app/
COPY resources/assets/ /app/resources/assets/

WORKDIR /app

RUN npm install && npm run production

FROM php:7.2-cli-alpine

COPY . /opt/sabay_quiz
COPY --from=php-builder /app/vendor/ /opt/sabay_quiz/vendor
COPY --from=frontend-builder /app/public/js/ /opt/sabay_quiz/public/js
COPY --from=frontend-builder /app/public/css/ /opt/sabay_quiz/public/css
COPY --from=frontend-builder /app/mix-manifest.json /opt/sabay_quiz/mix-manifest.json

RUN apk update --no-cache && \
  apk upgrade --no-cache && \
  apk add --no-cache postgresql-dev && \
  docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql && \
  docker-php-ext-install pdo pdo_pgsql pgsql && \
  chown -R root:www-data /opt/sabay_quiz && \
  find /opt/sabay_quiz -type f -exec chmod 664 {} + && \
  find /opt/sabay_quiz -type d -exec chmod 775 {} + && \
  chgrp -R www-data /opt/sabay_quiz/storage /opt/sabay_quiz/bootstrap/cache && \
  chmod -R ug+rwx /opt/sabay_quiz/storage /opt/sabay_quiz/bootstrap/cache

CMD ["tail", "-f", "/dev/null"]

Dockerfile для php-fpm

FROM php:7.2-fpm-alpine

EXPOSE 9000

CMD ["php-fpm", "--nodaemonize"]

Файл стека Docker

version: '3.7'
services:
  app:
    image: laravel_app:latest
    networks:
      - weavenet
      - pg_connect
    deploy:
      replicas: 1
    volumes:
      - laravel_file:/opt/app
    depends_on:
      - postgres_master
    env_file:
      - .env.prod

    postgres_master:
      image: postgres:11-alpine
      networks:
        - weavenet
        - pg_connect
      deploy:
        replicas: 1
      volumes:
        - pg_data:/var/lib/postgresql/data
      env_file:
        - .env.prod.postgres

    php_fpm:
      image: my/php_fpm
      deploy:
        replicas: 3
      volumes:
        - ./php_fpm.www.conf:/usr/local/etc/php-fpm.d/www.conf:ro
        - laravel_file:/opt/app
      networks:
        - weavenet
        - ingress

    proxy:
      image: nginx:1.15-alpine
      depends_on:
        - php_fpm
        - app
      networks:
        - ingress
      ports:
        - 80:80
        - 443:443
      volumes:
        - laravel_file:/opt/app:ro
        - ./nginx.conf:/etc/nginx/conf.d/default.conf

networks:
  weavenet:
    external: true

  ingress:

  pg_connect:
    driver: overlay

volumes:
  laravel_file:
    driver: local

  pg_data:
    driver: local

Файл .env.prod

# NOTE: I only shows the .env.prod file because I am pretty sure I
# properly setup on the postgres master node side also because
# the migration I ran from within the app container works and
# I also check the table and seed data does present in the
# postgres master node data
# and inside the .env.prod.postgres only have 3 env vars, those are
# db name, db user and db password

APP_NAME="APP"
...
DB_CONNECTION=pgsql
DB_HOST=postgres_master
DB_PORT=5432
DB_DATABASE=app
DB_USERNAME=user
DB_PASSWORD=user
...

Я мог бы развернуть стек, и все настраивается ожидаемым образом.После того как все контейнеры раскрутятся.Я мог выполнить в контейнере app и успешно выполнить миграцию, а также я мог выполнить в контейнере postgres_master и увидеть все данные таблицы и начального числа.

Проблема возникла при переходе к 0.0.0.0 показывает мне экран входа в систему, как и ожидалось.Но когда я ввожу учетные данные и нажимаю клавишу ввода, чтобы войти, он показывает мне эту ошибку:

error description

ПРИМЕЧАНИЕ. Файл стека не идеален и не завершенеще.Я планировал сначала все сделать, а потом улучшить их перед производственным использованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...