Создал контейнер для поднятия проектов на 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@sessions*requireds*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, которые отдельно позначенные коммитами, как, например, адрес сервера и путь к репозиторию.