如何在 Limesurvey Docker 图像上安装 PHP Composer
How to install PHP Composer on a Limesurvey Docker image
如果这是一个显而易见的问题,请原谅我。我是 docker 的新手,我无法理解这里的安装说明:
https://hub.docker.com/_/composer/
我想在我的 Limesurvey docker 图像中使用 PHP Composer,该图像是使用以下 docker-compose "yml" 文件生成的:
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" 的目录:
/var/www/html/application
当它在容器中时,我如何给这个作曲家一个命令?我正在使用 Windows 10,docker 容器是 运行 默认的 linux 环境。 fjudith 的 Limesurvey 容器正在使用 Limesurvey 的最后一个 2.X 分支(3.X 之前的分支),它是 运行 PHP 7.2
您可以使用 docker 文件构建创建自定义图像,您可以在构建部分指定 docker 文件名,docker-compose.yml 和docker文件在我附加的同一个文件夹中,例如:
docker-compose.yml:
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
docker文件:
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
谢谢 Brayan!我刚刚(10 分钟前)想到了另一种方法,您也可以执行 bash 命令。因为我在 Windows,所以我必须在命令提示符中做的两行是
docker exec -it <my_container_name> bash
然后它让我进入“/var/www/html#”,在那里我执行了以下命令:
$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
从那里开始很容易!你可以这样做
composer
它会指导您完成可能的命令。它建议不要使用 "root" 管理员。我将不得不考虑在 docker 图像中创建另一个用户。
如果这是一个显而易见的问题,请原谅我。我是 docker 的新手,我无法理解这里的安装说明: https://hub.docker.com/_/composer/
我想在我的 Limesurvey docker 图像中使用 PHP Composer,该图像是使用以下 docker-compose "yml" 文件生成的:
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" 的目录:
/var/www/html/application
当它在容器中时,我如何给这个作曲家一个命令?我正在使用 Windows 10,docker 容器是 运行 默认的 linux 环境。 fjudith 的 Limesurvey 容器正在使用 Limesurvey 的最后一个 2.X 分支(3.X 之前的分支),它是 运行 PHP 7.2
您可以使用 docker 文件构建创建自定义图像,您可以在构建部分指定 docker 文件名,docker-compose.yml 和docker文件在我附加的同一个文件夹中,例如:
docker-compose.yml:
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
docker文件:
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
谢谢 Brayan!我刚刚(10 分钟前)想到了另一种方法,您也可以执行 bash 命令。因为我在 Windows,所以我必须在命令提示符中做的两行是
docker exec -it <my_container_name> bash
然后它让我进入“/var/www/html#”,在那里我执行了以下命令:
$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
从那里开始很容易!你可以这样做
composer
它会指导您完成可能的命令。它建议不要使用 "root" 管理员。我将不得不考虑在 docker 图像中创建另一个用户。