@Steely

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

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

В общем у меня проблемы именно с проектированием, помогите как правильно организоваться работу.
  • Вопрос задан
  • 243 просмотра
Пригласить эксперта
Ответы на вопрос 1
  • sergiks
    @sergiks
    Разработчик, музыкант, фотограф.
    Для файлов проекта сделать отдельный контейнер 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
    Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы