首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Limesurvey映像中安装PHP

如何在Limesurvey映像中安装PHP
EN

Stack Overflow用户
提问于 2018-06-22 16:25:16
回答 2查看 380关注 0票数 2

如果这是个显而易见的问题,请原谅我。我对docker相当陌生,很难理解这里的安装说明:/composer/

我想使用PHP在我的Limesurvey映像中使用,它是用下面的docker-compose "yml“文件生成的:

代码语言:javascript
复制
limesurvey-md:
  image: mariadb
  restart: always
  ports:
    - "32805:3306"
  environment:
    MYSQL_DATABASE: limesurvey
    MYSQL_ROOT_PASSWORD: password
    MYSQL_USER: limesurvey
    MYSQL_PASSWORD: password
  volumes:
    - limesurvey-db:/var/lib/mysql
    - limesurvey-dblog:/var/log/mysql
    - limesurvey-dbetc:/etc/mysql

limesurvey:
  image: fjudith/limesurvey
  restart: always
  ports:
    - "32705:80"
  volumes:
    - limesurvey-upload:/var/www/html/upload
  links:
    - limesurvey-md:mysql

为了实现这一点,我需要向我的yml文件添加什么?如果有帮助,那么Limesurvey图像中有一个名为"application“的目录:

代码语言:javascript
复制
 /var/www/html/application

当这个作曲家在容器中时,我如何给它一个命令?我使用的是Windows 10,而docker容器正在运行默认的linux环境。fjudith的Limesurvey容器使用Limesurvey的最后一个2.X分支(3.x之前的一个分支),它正在运行PHP7.2。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-23 17:12:06

您可以使用dockerfile构建创建自定义映像,yo可以在build部分指定dockerfile名称,docker-compose.yml和dockerfile位于我附加的和示例中相同的文件夹中:

docker-compose.yml:

代码语言:javascript
复制
version: '3.1'
services:

  limesurvey-md:
    image: mariadb
    restart: always
    ports:
      - 32805:3306
    environment:
      MYSQL_DATABASE: limesurvey
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: limesurvey
      MYSQL_PASSWORD: password
    volumes:
      - limesurvey-db:/var/lib/mysql
      - limesurvey-dblog:/var/log/mysql
      - limesurvey-dbetc:/etc/mysql

  limesurvey:
    build:
        context: .
        dockerfile: dockerfile
    restart: always
    ports:
      - 32705:80
    volumes:
      - limesurvey-upload:/var/www/html/upload
    links:
      - limesurvey-md:mysql

volumes:
    limesurvey-db:
        driver: local
    limesurvey-dblog:
        driver: local
    limesurvey-dbetc:
        driver: local
    limesurvey-upload:
        driver: local

文档:

代码语言:javascript
复制
FROM "fjudith/limesurvey:latest"
LABEL maintainer="ing.brayan.cm@gmail.com"

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
票数 1
EN

Stack Overflow用户

发布于 2018-06-23 17:25:58

谢谢Brayan!我(10分钟前)想出了另一种方法,您也可以执行bash命令。由于我在Windows中,我必须在命令提示符中执行的两行操作是

代码语言:javascript
复制
docker exec -it <my_container_name> bash

然后,它将我放入"/var/www/html#“中,执行以下命令:

代码语言:javascript
复制
$sudo curl -o /tmp/composer-setup.php https://getcomposer.org/installer && curl -o /tmp/composer-setup.sig https://composer.github.io/installer.sig && php -r "if (hash('SHA384', file_get_contents('/tmp/composer-setup.php')) !== trim(file_get_contents('/tmp/composer-setup.sig'))) { unlink('/tmp/composer-setup.php'); echo 'Invalid installer' . PHP_EOL; exit(1); }" && php /tmp/composer-setup.php --no-ansi --install-dir=/usr/local/bin --filename=composer --snapshot && rm -f /tmp/composer-setup.*

我修改了这里的第二行:Get composer (php dependency manager) to run on a docker image build

从那里开始很容易!你可以直接做

代码语言:javascript
复制
composer

它指引你完成可能的命令。它建议不要使用"root“管理员。我将研究如何在docker映像中创建另一个用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50992086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档