我用Symfony 4设置了以下设置:https://symfony.com/doc/current/doctrine/pdo_session_storage.html
无论pdo会话处理程序是如何配置的,如果docker映像将构建并输出此错误。
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
############################################
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发布于 2019-07-09 00:31:55
如果在handler_id下的会话配置中注册了PdoSessionHandler,则缓存清除将建立到数据库的连接。但是,没有用于docker映像构建过程的数据库。因此,无法加载该服务。
https://stackoverflow.com/questions/56936776
复制相似问题