我目前正在为我的项目建立一个基本形象。该项目使用mongodb。我已经成功地创建了映像,但是当我试图调用与libmongoc上的SSL相关的端点时,会出现一个错误:
The SCRAM_SHA_256 authentication mechanism requires libmongoc built with ENABLE_SSL下面是关于我的码头形象的一些值得注意的东西:
高寒高寒7.2
以下是目前存在问题的实施情况,欢迎您的建议:
FROM alpine:3.8
RUN apk update && apk upgrade
RUN apk --no-cache add composer curl gcc git make musl-dev nginx \
openssl openssl-dev php7 php7-ctype php7-curl php7-dev \
php7-dom php7-fileinfo php7-fpm php7-gd php7-iconv \
php7-imagick php7-intl php7-json php7-mbstring php7-mysqli \
php7-opcache php7-openssl php7-pdo php7-pdo_mysql php7-pear \
php7-redis php7-simplexml php7-tokenizer php7-xdebug \
php7-xmlreader php7-xmlwriter php7-zip php7-zlib supervisor tzdata
RUN pecl install mongodb \
&& pecl config-set php_ini /etc/php7/php.ini \
&& echo "extension=mongodb.so" > /etc/php7/conf.d/20_mongodb.ini除了上面的Dockerfile之外,我还尝试手动构建基于this article 的mongo驱动程序,但是它没有帮助。这两个选项仍然显示,当我检查php -i | grep mongo时,SSL是禁用的。如果我需要包括其他信息,请告诉我。
发布于 2021-12-31 19:49:30
最初的职位是一年多以前的。但我也被这个错误压倒了:The SCRAM_SHA_256 authentication mechanism requires libmongoc built with ENABLE_SSL。
下面的解决方案假设您有一个用于mongodb的坞-组合配置。
我的解决方案是首先停止并移除正在实现mongoDB的容器.调用容器workspace
堆叠:
最新alpine
创建mongodb扩展的Dockerfile工作
RUN apk add redis gnupg openrc openssl libbsd==0.9.1-r1 && rm -rf /var/cache/apk/*
RUN apk update && apk upgrade &&\
apk add --no-cache php7-pear php7-dev php7-openssl gcc musl-dev make &&\
apk add curl-dev openssl openssl-dev &&\
pecl channel-update pecl.php.net &&\
pecl install mongodb &&\
pecl config-set php_ini /etc/php7/php.ini
RUN echo "extension=mongodb.so" >> /etc/php7/php.ini &&\
php --ri mongodb构建容器
docker-compose stop workspace && docker-compose rm -f workspace && docker-compose build --no-cache workspace向容器中猛击:docker-compose exec workspace bash
验证MongoDB实际上是作为php模块存在的:
bash-5.0# php -m | grep mongodb
mongodb验证libmongoc上启用的SSL
enter command: php --ri mongodb答复如下:
bash-5.0# php --ri mongodb
mongodb <<<<<< Response means mongo is enabled. See more below.
MongoDB support => enabled
MongoDB extension version => 1.12.0
MongoDB extension stability => stable
libbson bundled version => 1.20.0
libmongoc bundled version => 1.20.0
libmongoc SSL => enabled <<<< SSL Enabled fixes the problem.
libmongoc SSL library => OpenSSL
libmongoc crypto => enabled
libmongoc crypto library => libcrypto
libmongoc crypto system profile => disabled
libmongoc SASL => disabled
libmongoc ICU => disabled
libmongoc compression => enabled
libmongoc compression snappy => disabled
libmongoc compression zlib => enabled
libmongoc compression zstd => disabled
libmongocrypt bundled version => 1.3.0
libmongocrypt crypto => enabled
libmongocrypt crypto library => libcrypto
Directive => Local Value => Master Value
mongodb.debug => no value => no value
mongodb.mock_service_id => Off => Offhttps://stackoverflow.com/questions/64888534
复制相似问题