Docker container YII

в 20:04, , рубрики: Песочница, метки: , , , , , , , ,

Создал контейнер для поднятия проектов на 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, которые отдельно позначенные коммитами, как, например, адрес сервера и путь к репозиторию.
  1. Cсылка на гитлаб с кодом
  2. Ссылка на Docker Hub


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js