首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker build: Symfony 4类PdoSessionHandler不存在

问Docker build: Symfony 4类PdoSessionHandler不存在
EN

Stack Overflow用户
提问于 2019-07-08 22:09:54
回答 1查看 122关注 0票数 1

我用Symfony 4设置了以下设置:https://symfony.com/doc/current/doctrine/pdo_session_storage.html

无论pdo会话处理程序是如何配置的,如果docker映像将构建并输出此错误。

代码语言:javascript
复制
Generating autoload files
ocramius/package-versions:  Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!  
!!  In DefinitionErrorExceptionPass.php line 54:
!!                                                                                 
!!    Invalid service "Symfony\Component\HttpFoundation\Session\Storage\Handler\P  
!!    doSessionHandler": class "Symfony\Component\HttpFoundation\Session\Storage\  
!!    Handler\PdoSessionHandler" does not exist.                                   
!!                                                                                 
!!  
!!

如果我将Docker设置为像这样的文件:https://symfony.com/doc/current/session.html,那么构建handler_id镜像将没有问题。之后,我将这个镜像作为容器启动,并将handler_id设置为PdoSessionHandler,清除缓存,它就可以工作了。但是为什么在缓存清除过程中缺少服务或类PdoSessionHandler呢?这只能通过构建docker镜像来实现。

Dockerfile

代码语言:javascript
复制
############################################
FROM alpine:3.8 as build-api
############################################

ENV APP_ENV prod

RUN apk update \
  && apk upgrade \
  && apk add \
  composer \
  git \
  openssh-client \
  php7-apcu \
  php7-bcmath \
  php7-ctype \
  php7-curl \
  php7-dev \
  php7-dom \
  php7-fileinfo \
  php7-fpm \
  php7-gd \
  php7-imagick \
  php7-imap \
  php7-intl \
  php7-mbstring \
  php7-pdo_pgsql \
  php7-pgsql \
  php7-simplexml \
  php7-soap \
  php7-tokenizer \
  php7-xml \
  php7-zip \
  php7-zmq

RUN echo 'memory_limit = 2G' >> /etc/php7/php.ini

COPY app /app
COPY --from=build-ssh /ssh /root/.ssh

WORKDIR /app
RUN composer --no-interaction install

############################################
FROM alpine:3.8 as env-app
############################################

ENV APP_ENV prod

RUN apk update \
  && apk upgrade \
  && apk add \
  ghostscript \
  nginx \
  pdftk \
  php7-apcu \
  php7-bcmath \
  php7-ctype \
  php7-curl \
  php7-dev \
  php7-dom \
  php7-fileinfo \
  php7-fpm \
  php7-gd \
  php7-iconv \
  php7-imagick \
  php7-imap \
  php7-intl \
  php7-json \
  php7-mailparse \
  php7-mbstring \
  php7-pdo_pgsql \
  php7-simplexml \
  php7-session \
  php7-soap \
  php7-tokenizer \
  php7-xml \
  php7-xmlreader \
  php7-xmlwriter \
  php7-zip \
  php7-zmq \
  qpdf \
  tzdata

RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime

RUN apk add nginx \
  && adduser -D -g 'www' www \
  && chown -R www:www /var/lib/nginx \
  && mkdir -p /run/nginx

RUN apk add php7-fpm \
  && mkdir -p /run/php

COPY --chown=www:www --from=build-api /app /app

RUN chown -R www:www /app \
  && chmod -R 500 /app \
  && chmod -R 700 /app/var

WORKDIR /app
CMD php-fpm7 && nginx -g "daemon off;"

EXPOSE 80
EN

回答 1

Stack Overflow用户

发布于 2019-07-09 00:31:55

如果在handler_id下的会话配置中注册了PdoSessionHandler,则缓存清除将建立到数据库的连接。但是,没有用于docker映像构建过程的数据库。因此,无法加载该服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56936776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档