Рубрики
Uncategorized

Docker — Dev, Debug, Развертывать

Почему, будучи разработчиком, который работает над парой проектов, я хотел найти способ, который — мой набор … Tagged с Docker, методология, DevOps, OpenSource.

Как разработчик, который работает над парой проектов, я хотел найти способ, который

  • Время настройки будет как можно быстрее
  • Было бы легко поделиться моим кодом и настройкой проекта с товарищами по команде
  • Я хочу, чтобы моя среда разработки была как можно ближе к производству

Поэтому я начал искать способ сделать это, сначала я подумал о Git , но проблема с Git это то, что время настройки не является оптимальным — Как мне автоматически настроить Переменные среды ? или синхронизировать Git Hooks Для моего проекта, что, если мой проект использует новый язык программирования или версию? Я не хочу начинать устанавливать и управлять версиями на моем локальном ПК ..

И я не хочу платить за какое -либо решение.

Чем я начал думать об использовании Docker Как моя среда разработки, я могу запустить Докер Как «сервер личного развития» и настроить все, что мне нужно, внутри Docker Image — Компилятор/интерпретатор, переменные среды, зависимости и многое другое, и когда я заканчиваю кодирование, я могу использовать то же самое Docker Image В моей производственной среде

Что такое Docker

« Docker — это открытая платформа для разработки, доставки и запуска приложений. Docker Позволяет вам отделить ваши приложения от вашей инфраструктуры, чтобы вы могли быстро доставить программное обеспечение. С Docker Вы можете управлять своей инфраструктурой так же, как управлять своими приложениями. Используя преимущества Docker's Методологии для доставки, тестирования и быстрого развертывания кода, вы можете значительно сократить задержку между написанием кода и выполнением его в производстве ». От Docker Официальная документация, вы можете прочитать больше здесь

Строить

Я использую это Dockerfile как шаблон от Здесь Чтобы построить мой Docker Image , Я устанавливаю OpenSSH-сервер Так что я могу использовать его так же, как сервер разработки, и поделиться им со своими товарищами по команде.

FROM python:3.6
ARG GIT

RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:MYSUPERSECRETROOTPASSWORD' | chpasswd

# According to your linux distribution this line my differ
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22

RUN echo ' \n\
git clone $GIT ~/code \n\
cd ~/code \n\
git pull \n\
pip install -r requirements.txt' > ./run.sh

# Also configure hooks, environment variables and more

RUN sh ./run.sh

RUN echo '/usr/sbin/sshd -D' >> ./run.sh

CMD ["sh", "./run.sh"]

Запустить с помощью:

> docker build --build-arg GIT=GITREPURL -t my_cool_docker .

При выполнении Docker Build это будет git клон Мой проект и установка Pip зависимости и все, что мне нужно сделать, также я определяю то же самое ./run.sh Файл для выполнения каждый раз, когда я использую Docker Run Чтобы держать мой Docker в курсе новых коммитов и более

Бежать

Я использую эту команду, чтобы запустить свое изображение

> docker run -dP my_cool_docker
37d6e53cb27396467a10c7361d319d28d0197a7b5dc7347bb39c251dff7403dc

> docker port 3
22/tcp -> 0.0.0.0:32768

> ssh root@localhost -p 3276
The authenticity of host '[localhost]:32768 ([::1]:32768)' can't be established.
ECDSA key fingerprint is SHA256:z4x3yWVSJZAoswgEa0utt5jSv0Mt0Ex6sMY8a4CFCnE.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:32768' (ECDSA) to the list of known hosts.
root@localhost's password:
Linux 37d6e53cb273 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@37d6e53cb273:~# ls -l
total 4
drwxr-xr-x 1 root root 4096 Dec 14 09:45 code

Итак, как вы видите, я запускаю Изображение используя Отметь флаг и разоблачить все Порты, Тогда я использую ssh В Localhost с открытым портом введите пароль Super Secret Root И у нас есть личный сервер разработки, который на самом деле является контейнер Docker Запуск на вашем личном компьютере!

Преимущества

  • Однажды настройка для всего, что мне нужно
  • Та же среда для разработки и производства
  • Легко поделиться с товарищами по команде

Недостатки

  • Вы можете потерять данные, если ваш контейнер крушение
  • Подходит для тех, кто использует контейнеры в производстве

Наслаждайтесь 😋

Нравится этот пост? Поддержите меня через Patreon Подписаться на мой YouTube канал

Оригинал: «https://dev.to/eranelbaz/docker-dev-debug-deploy-199l»