【问题标题】:Adding pdo-mysql extension to existing container将 pdo-mysql 扩展添加到现有容器
【发布时间】:2021-10-11 22:56:38
【问题描述】:

编辑:对于任何想要获得带有扩展的 PHP 容器的人,我发现最好的解决方案是使用 script to install the extensions. 就像一个魅力。

这是我使用的具体 dockerfile:

FROM php:8.1.0RC3-apache-buster

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions sqlsrv pdo_sqlsrv pdo_mysql

我有一个安装了 SQL 服务器扩展的现有容器,因此我正在尝试从中创建一个新容器。这是 docker-compose:

    version: '3.1'

services:
  MageAPIDev:
    container_name: MageAPIDev
    image: mc_test:v2
    ports:
      - 200:80
    volumes:
      - ./src:/var/www/html/
      - .app:/var/app/
    command: apt-get install autoconf -y
    command: docker-php-ext-install pdo pdo_mysql
  MageAPIsql:
    container_name: MageAPIsql
    image: mysql:latest
    ports:
      - 3306:3306
    volumes:
      - ./mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 'PWD'
      MYSQL_USER: 'USER'
      MYSQL_PASS: 'PWD'
  composer:
    image: composer/composer
    command: install
    command: composer require experius/magento2apiclient
    volumes:
      - .app:/app

尝试这样做的结果是:

Cannot find autoconf. Please check your autoconf installation and the
MageAPIDev    | $PHP_AUTOCONF environment variable. Then, rerun this script.

所以我尝试进入容器并手动安装 autoconf。那行得通,但是当我尝试使用 docker-php-ext-install pdo pdo_mysql 手动安装 MySQL 时,我得到:

creating libtool
appending configuration tag "CXX" to libtool
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
/usr/local/bin/docker-php-ext-install: 107: /usr/local/bin/docker-php-ext-install: make: not found

真的不想从头开始容器。 Tbh,我丢失了我制作的 dockerfile 表单,这有我需要的 MSsqlsrv 驱动程序。我只是想为 MySql 安装和启用 PDO 驱动程序。

如果有人已经为 PHP 8 制作了 dockerfile,它安装了 SqlSrv 驱动程序和 MySql 的 PDO,我会试一试。

【问题讨论】:

  • 安装前您可能只需要一个apt-get update。我会查看docker inspect MageAPIsql,因为它可能包含足够的历史来重新创建 Dockerfile。
  • @danblack,我想你误会了。 MS Sqlsrv 的 PDO 驱动程序位于 MageAPIDev 上。我发现它们安装了一个非常长的 dockerfile,因为安装驱动程序很麻烦。我对它进行了检查,它并没有透露很多关于原始 dockerfile 的信息。

标签: php mysql docker pdo


【解决方案1】:

对于任何试图获得带有扩展的 PHP 容器的人,我发现最好的解决方案是使用 a script to install the extensions. 就像一个魅力。

这是我使用的具体 dockerfile:

FROM php:8.1.0RC3-apache-buster

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions sqlsrv pdo_sqlsrv pdo_mysql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2019-11-06
    • 1970-01-01
    • 2013-06-07
    • 2017-08-31
    • 2013-11-29
    相关资源
    最近更新 更多