@Steely

Принцип работы composer в docker контейнере?

Собственно есть два контейнера, база и php со скриптами.
Вопрос такой, как правильно работать с Composer manager в докер контейнерах? Т.е. я ставлю его в контейнере с PHP и потом мне надо запустить команду composer update вручную или прописать в Dockerfile? А ssh ключ для доступа к github куда положить?

В общем у меня проблемы именно с проектированием, помогите как правильно организоваться работу.
  • Вопрос задан
  • 1502 просмотра
Пригласить эксперта
Ответы на вопрос 1
Для файлов проекта сделать отдельный контейнер project_files, который потом можно подключать к php через --volumes-from project_files

Примерный Dockerfile для этого контейнера:
FROM ubuntu

RUN apt-get update  &&  apt-get install -y git

RUN mkdir /root/.ssh/

COPY id_rsa /root/.ssh/id_rsa

# Add bitbuckets key
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

# CLone repo
RUN git clone git@bitbucket.org:username/projectname.git /project_files

# Create volume
VOLUME /project_files


Кладёте в папку с Dockerfile ваш id_rsa и билдите docker build -t myproject/files . и создаёте контейнер
docker create --name project_files myproject/files /bin/true


Есть официальный докер имидж composer'а: docker pull composer/composer Надо его запустить и установить зависимости вашего проекта, подключив тот контейнер с файлами проекта:
docker run --rm --volumes-from project_files -w "/project_files" composer install

Теперь в вашем контейнере с файлами полный комплект для запуска.

К контейнеру с PHP подключайте контейнер с файлами проекта тем же --volumes-from:
docker run \
  --name myproject_php \
  --volumes-from project_files \
  php:5-fpm
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы