[英]Docker build: Symfony 4 class PdoSessionHandler does not exist
我已經使用Symfony 4設置了以下設置: https : //symfony.com/doc/current/doctrine/pdo_session_storage.html
如果docker image將生成輸出此錯誤,則無論pdo會話處理程序如何配置。
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.
!!
!!
!!
如果我將handler_id
設置為如下所示的文件: https ://symfony.com/doc/current/session.html Docker鏡像將被構建而不會出現問題。 之后,我將此圖像作為容器啟動,並將handler_id
設置為PdoSessionHandler
,清除緩存即可使用。 但是,為什么在清除緩存過程中缺少服務或類PdoSessionHandler
? 這僅通過構建docker映像來發生。
Docker文件
############################################
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
如果PdoSessionHandler
在session config中的handler_id
下注冊,則清除緩存將建立與數據庫的連接。 但是,沒有用於Docker映像構建過程的數據庫。 結果,該服務無法加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.