文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

(超详细) hyperf官方dockerfile文件增加PHP扩展 sqlsrv pdo_sqlsrv 直接连接sql server数据库进行开发

2023-09-14 10:39

关注

hyperf官方容器使用的是Alpine Linux 所以我们需要按照微软官方的Alpine Linux配置来Microsoft ODBC Driver for SQL Server

以下是我根据hyperf官方8.0-alpine-v3.12-swoole版本的文件配置好的dockerfile文件 运行直接build就好了 也可以作为参照

# hyperf/hyperf:8.0## @link     https://www.hyperf.io# @document https://hyperf.wiki# @contact  group@hyperf.io# @license  https://github.com/hyperf/hyperf/blob/master/LICENSEARG ALPINE_VERSION=3.16FROM hyperf/hyperf:8.0-alpine-v${ALPINE_VERSION}-baseLABEL maintainer="Hyperf Developers " version="1.0" license="MIT"ARG SW_VERSIONARG COMPOSER_VERSION### ---------- env settings ----------##ENV SW_VERSION=${SW_VERSION:-"v4.6.7"} \    COMPOSER_VERSION=${COMPOSER_VERSION:-"2.0.2"} \    #  install and remove building packages    PHPIZE_DEPS="autoconf dpkg-dev dpkg file g++ gcc libc-dev make php8-dev php8-pear pkgconf re2c pcre-dev pcre2-dev zlib-dev libtool automake"# Install dependenciesRUN apk --no-cache add curl gnupg# Download the desired package(s)RUN curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.apkRUN curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/mssql-tools18_18.0.1.1-1_amd64.apk# (Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':RUN curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_18.0.1.1-1_amd64.sigRUN curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/mssql-tools18_18.0.1.1-1_amd64.sigRUN curl https://packages.microsoft.com/keys/microsoft.asc  | gpg --import -RUN gpg --verify msodbcsql18_18.0.1.1-1_amd64.sig msodbcsql18_18.0.1.1-1_amd64.apkRUN gpg --verify mssql-tools18_18.0.1.1-1_amd64.sig mssql-tools18_18.0.1.1-1_amd64.apk# Install the package(s)RUN apk add --allow-untrusted msodbcsql18_18.0.1.1-1_amd64.apkRUN apk add --allow-untrusted mssql-tools18_18.0.1.1-1_amd64.apk# updateRUN set -ex \    && apk update \    # for swoole extension libaio linux-headers    && apk add --no-cache unixodbc-dev libstdc++ openssl git bash \    && apk add --no-cache --virtual .build-deps $PHPIZE_DEPS libaio-dev openssl-dev curl-dev \    && pecl8 install sqlsrv pdo_sqlsrv \     # download    && cd /tmp \    && curl -SL "https://github.com/swoole/swoole-src/archive/${SW_VERSION}.tar.gz" -o swoole.tar.gz \    && ls -alh \    # php extension:swoole    && cd /tmp \    && mkdir -p swoole \    && tar -xf swoole.tar.gz -C swoole --strip-components=1 \    && ln -s /usr/bin/phpize8 /usr/local/bin/phpize \    && ln -s /usr/bin/php-config8 /usr/local/bin/php-config \    && ( \        cd swoole \        && phpize \        && ./configure --enable-openssl --enable-http2 --enable-swoole-curl --enable-swoole-json \        && make -s -j$(nproc) && make install \    ) \    && echo "memory_limit=1G" > /etc/php8/conf.d/00_default.ini \    && echo "opcache.enable_cli = 'On'" >> /etc/php8/conf.d/00_opcache.ini \    && echo "extension=swoole.so" > /etc/php8/conf.d/50_swoole.ini \    && echo "extension=sqlsrv.so" >> /etc/php8/conf.d/sqlsrv.ini \     && echo "extension=pdo_sqlsrv.so" >> /etc/php8/conf.d/pdo_sqlsrv.ini \     && echo "swoole.use_shortname = 'Off'" >> /etc/php8/conf.d/50_swoole.ini \    # install composer    && wget -nv -O /usr/local/bin/composer https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \    && chmod u+x /usr/local/bin/composer \    # php info    && php -v \    && php -m \    && php --ri swoole \    && php --ri Zend\ OPcache \    && composer \    # ---------- clear works ----------    && apk del .build-deps \    && rm -rf /var/cache/apkreturn [    'default' => [        'driver' => env('DB_DRIVER', 'mysql'),        'host' => env('DB_HOST', 'localhost'),        'database' => env('DB_DATABASE', 'hyperf'),        'port' => env('DB_PORT', 3306),        'username' => env('DB_USERNAME', 'root'),        'password' => env('DB_PASSWORD', ''),        'charset' => env('DB_CHARSET', 'utf8'),        'collation' => env('DB_COLLATION', 'utf8_unicode_ci'),        'prefix' => env('DB_PREFIX', ''),        'encrypt' => 'yes', // 解决证书报错        'trust_server_certificate' => 'true', // 解决证书报错        'pool' => [            'min_connections' => 1,            'max_connections' => 10,            'connect_timeout' => 10.0,            'wait_timeout' => 3.0,            'heartbeat' => -1,            'max_idle_time' => (float) env('DB_MAX_IDLE_TIME', 60),        ],        'commands' => [            'gen:model' => [                'path' => 'app/Model',                'force_casts' => true,                'inheritance' => 'Model',            ],        ],    ],];// ... 

小结
认真看完代码中的注释,真的很帮助我们的开发哦.
感谢您的阅读~~

来源地址:https://blog.csdn.net/qq_21479909/article/details/126117385

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯