Pull to refresh

Docker container YII

Создал контейнер для поднятия проектов на YII.
Для чего?
Для быстрого развертывания проектов, что бы не тратить время на подготовку базового контейнера.

FROM      ubuntu
MAINTAINER Olexander Kutsenko <olexander.kutsenko@gmail.com>

#install
RUN apt-get update -y
RUN apt-get install git git-core vim nano mc nginx screen curl unzip -y
RUN apt-get install -y php5 php5-fpm php5-cli php5-common php5-intl php5-json php5-mysql php5-gd php5-imagick php5-curl php5-mcrypt php5-dev php5-xdebug

#php
RUN sudo rm /etc/php5/fpm/php.ini
COPY configs/php.ini /etc/php5/fpm/php.ini
COPY configs/20-xdebug.ini /etc/php5/fpm/conf.d/
COPY configs/www.conf /etc/php5/fpm/pool.d/www.conf

#MySQL
RUN echo "mysql-server mysql-server/root_password password root" | debconf-set-selections
RUN echo "mysql-server mysql-server/root_password_again password root" | debconf-set-selections
RUN sudo apt-get  install -y mysql-server mysql-client

#nginx
COPY configs/website /etc/nginx/sites-available/website
RUN ln -s /etc/nginx/sites-available/website /etc/nginx/sites-enabled/website
RUN sudo rm /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default

# SSH service
RUN sudo apt-get install -y openssh-server openssh-client
RUN sudo mkdir /var/run/sshd
#chanche 'passwd' to your secret password
RUN echo 'root:passwd' | chpasswd
RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

#configs bash start
COPY configs/autostart.sh /root/autostart.sh
RUN chmod +x /root/autostart.sh
COPY configs/bash.bashrc /etc/bash.bashrc

#composer
RUN cd /usr/bin
RUN curl -sS https://getcomposer.org/installer | php


А теперь по порядку:
  • Сначала выкачиваем и устанавливаем необходимые пакеты для работы Yіі фреймворка;
  • Потом демаем замену шаблонных конфигов nginx и php;
  • После чего — подключаем файлик, который был создан заранее (autostart.sh), который содержит запуск всех сервисов при старте контейнера;
  • Ну и самое главное — запускаем контейнер с открытым веб-портом и ssh-доступом:
    sudo docker pull cristo/yii
    sudo docker run -i -t -d -p 80:80 -p 22:22 cristo/yii /bin/bash
    

  • Дсотупы к базе:
    mysql -uroot -proot
    
  • Дсотупы к ssh:
    ssh root@localhost (password: passwd)
    
  • Не забудьте изменить поля в конфиг файле nginx, которые отдельно позначенные коммитами, как, например, адрес сервера и путь к репозиторию.


  1. Cсылка на гитлаб с кодом
  2. Ссылка на Docker Hub

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.
Change theme settings