Как установить PHP Composer на образ Limesurvey Docker

Простите, если это очевидный вопрос. Я довольно новичок в докере, и у меня возникают проблемы с пониманием инструкций по установке здесь:
https://hub.docker.com/_/composer/

Я хочу использовать PHP Composer в моем образе докера Limesurvey, который был сгенерирован с помощью следующего файла 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 использует последнюю ветку 2.X Limesurvey (прямо перед 3.X) и работает на PHP 7.2

2

Решение

Вы можете создать собственный образ с помощью сборки dockerfile, вы можете указать имя dockerfile в разделе сборки, docker-compose.yml и dockerfile находятся в одной папке, которую я здесь прикрепляю, и пример:

докер-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

dockerfile:

FROM "fjudith/limesurvey:latest"LABEL maintainer="[email protected]"
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
1

Другие решения

Спасибо, Брайан! Я просто (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.*

Я адаптировал вторую строку отсюда: Получите composer (менеджер зависимостей php) для запуска на сборке образа докера

Оттуда это просто! Вы можете просто сделать

composer

и он проведет вас через возможные команды. Он предлагает не использовать «root» администратор. Мне придется посмотреть на создание другого пользователя в образе докера.

0

По вопросам рекламы [email protected]