Ось невеликий приклад використання docker-compose для запуску проєкту на python.
Створюємо Dockerfile за наступним кодом:
FROM python:3.10
ADD . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD [ "python", "run.py"]
В якому FROM python:3.10 створює контейнер з python версії 3.10 з офіційного образу. Зі списком доступних образів можна ознайомитись на hub.docker.com
ADD . /app додає наш поточний каталог в контейнер, далі встановлюємо небхідні залежності з requirements.txt і запускаємо наш код командою python run.py
Створюємо файл docker-compose.yml з наступним вмістом:
- ./:/app - монтує поточну директорю проєкту яка буде доступна в контейнері як /app. Це дозволяє контейнеру читати і писати напряму з каталогу нашого проєкту. Тому, якщо проєкт пише логи в цю директорію, вони нам будуть доступні напряму. Те саме відноситься і до коду, після будь яких змін перезбирати контейнер не потрібно, достньо його перезапустити.
network_mode: "host" - дає контейнеру доступ до локальної мережі. Це дає можливість підключатися з вашого коду до будть яких сервісів запущений на вашій машині.
Для створення контейнеру необхідно виконати docker-compose build а для запуску docker-compose up
На якій мові пишите код? Я новачок в Лінукс. Нещодавно перейшов з убунту на мінт. Трохи знаю баш-скріпти. але цього замало. Хочу додати собі на клваатуру довге тире та нормальні лапки :)
Оу, то якщо всі скріпти вимкнені, то воно працює. А якщо увімкнені, то не працює, бо скріпт перехопив і не дійшов до submit(). Ну, мені це цілком ок. Але інші користувачі ймовірно будуть не розуміти чому в них не працює.
Покращено дерево коментарів, тепер відповіді на коментар об'єднуються в один потік замість формування "ялинки" коли у кожного дочірнього коментаря все більший відступ.
Так він і буде на тому ж рівні що і 3, але буде після дерева відповідей на 3-й коментар.
Ось так буде виглядати кінцевий html
<UL>
<LI>2</LI>
<UL>
<LI>3</LI>
<UL>
<LI>4</LI>
<UL>
<LI>5</LI>
<UL>
<LI>6</LI>
</UL>
</UL>
</UL>
<LI>Коментар № 13 є відповіддю на № 2 і має бути на тому ж рівні вкладенності що й коментар № 3.</LI>
</UL>
</UL>
<UL>
<LI>2</LI>
<UL>
<LI>3</LI>
№ 4 та № 13 — відповідь на № 3
<UL>
<LI>4</LI>
<UL>
<LI>5</LI>
<UL>
<LI>6</LI>
</UL>
</UL>
</UL>
<UL>
<LI>Коментар № 13 є відповіддю на № 3 і має бути на тому ж рівні вкладенності що й коментар № 4.</LI>
</UL>
</UL>
</UL>
З emoji треба обережно. В заголовки їх пхати взагалі не можна, це підриває довіру до всього що йде під таким загаловком.
До речі, саме наявність emoji допомагає впізнавати не бажаний контент.
Це приклад того як не можна робити. Не залишайте id порожніми.
Залишайте хоча би так: <a href="#home">Home</a>
І якщо навігаційне меню є списком, то ul>li*>a або ol>li*>a має бути обовязково.
UX bug: користувач має складність змінити або видалити комент, коли комент починається з цитати (<blobkquote>). Blockquote перекриває кнопки зміни/видаленя.
Дякую за матеріал!
Мені подобається варіант латинки Максима Прудеуса: https://www.ukr-latynka.org/
Давно цікавлюсь темою, покищо встановив собі наступну конфігурацію:
/usr/share/X11/xkb/symbols/ue
Користуюсь i3 (mod/win), перемикаюсь додавши до /.xinitrc:
Варіант зручний тим, що не потрібно перемикатись в процесі написання коду на відвідування англо-мовних ресурсів.
Поки HTTP/3 захоплює світ - мене захоплює Gemini: https://en.wikipedia.org/wiki/Gemini_(protocol)
Дякую за корисну і зрозумілу статтю
Крута ідея! Так тримати!
Дякую!
Це класна і дуже корисна стаття
А які інструменти порекомендуєте для напісання тестової документації? Напріклад ШІ було би цікаво вікористовувити для написання тест кейсів.
Дякую за класну статтю. Ще досі ці тулзи є актуальними.
Дякую, просто й зрозуміло
Ось невеликий приклад використання
docker-compose
для запуску проєкту на python.Dockerfile
за наступним кодом:В якому
FROM python:3.10
створює контейнер з python версії 3.10 з офіційного образу. Зі списком доступних образів можна ознайомитись на hub.docker.comADD . /app
додає наш поточний каталог в контейнер, далі встановлюємо небхідні залежності зrequirements.txt
і запускаємо наш код командоюpython run.py
docker-compose.yml
з наступним вмістом:docker-compose build
а для запускуdocker-compose up
Git Real вже не існує. - https://www.codeschool.com/courses/git-real
Про обіцянки (Promise в JavaScript, Task в C#) і ключові слова { "async", "await" } все правильно. Решта - вода.
Гарне відео
Дякую, те, що треба.
На якій мові пишите код? Я новачок в Лінукс. Нещодавно перейшов з убунту на мінт. Трохи знаю баш-скріпти. але цього замало. Хочу додати собі на клваатуру довге тире та нормальні лапки :)
Обрізку тегів
<details>
та<summary>
виправив і оновив список дозовлених тегів.Дозволені теги:
Виправив роботу сайту з вимкненим JS. Тепер майже весь функціонал працює і без JS.
Добре, перевірю що там може бути в JS.
Оу, то якщо всі скріпти вимкнені, то воно працює. А якщо увімкнені, то не працює, бо скріпт перехопив і не дійшов до
submit()
. Ну, мені це цілком ок. Але інші користувачі ймовірно будуть не розуміти чому в них не працює.А, ні, таки є помилки після кліку на вподобайку:
Вдалося поставити вподобайку через console:
В консолі бачу тільки старі помилки, які були давно, повязані з неможливістю завантажити ґуґлівські скріпти (www.googletagmanager.com/gtag/js).
Web переглядач: Opera 60.0 (Win x64).
Є якісь помилки в JS консолі? Тому що в мене працює.
Можливо треба оновити сторінку (Ctrl+F5), нещодавно змінював цей функціонал. Тепер воно має працювати і без JS.
Хотів поставити вподобайку на
/post/*
, але вони зараз не клікабельні. В коментах теж.Покращено дерево коментарів, тепер відповіді на коментар об'єднуються в один потік замість формування "ялинки" коли у кожного дочірнього коментаря все більший відступ.
Виправив неправильне посилання. Привальний URL /topics/add
Спроба "Додати тему" (/topic/add) перенаправлює на зовсім іншу сторінку.
Дякую! Хоча все це особисто мені не нове та просто піздец приємно почитати нормальну інструкцію українською)
Так, це була нова вкладка. В консолі помилок не бачу.
Так він і буде на тому ж рівні що і 3, але буде після дерева відповідей на 3-й коментар.
Ось так буде виглядати кінцевий html
А що робити в цьому випадку:
Якщо ви клікнули "Відкрити в новій вкладці", то цей момент виправив.
А якщо таке з'явилось при звичайному кліці, то подивіться чи є помилка в JS консолі, тому що цей блок повинен вивеститсь в випадаючому вікні.
Щось поламалось .. див. дзвінок у верхньому лівому куті.
З emoji треба обережно. В заголовки їх пхати взагалі не можна, це підриває довіру до всього що йде під таким загаловком. До речі, саме наявність emoji допомагає впізнавати не бажаний контент.
Заголовок вводить в оману. Яка спільнота ?.. чому ?.. По факту як раз навпаки, спільнота підписалась щоб його не викинули.
Дійсно, стаття була трохи обрізна. Виправлено.
Прибрав биті посилання. Не зовсім зрозуміло куди вони мали посилатся.
Не очікуване перенаправленя.
Шось тут не добре.. Виглядає наче хтось обрізав цю статтю.
Взагалі будь-які дії з репо треба робити через Git, не через GitHub. Пропонуючи merge GitHub вводить користувачів в оману, і підміняє важливу інфо.
Це приклад того як не можна робити. Не залишайте id порожніми. Залишайте хоча би так:
<a href="#home">Home</a>
І якщо навігаційне меню є списком, тоul>li*>a
абоol>li*>a
має бути обовязково.😁 хороша спроба, але ні.
У
imageproxy
не можна обмежити пам'ять параметром-memory 500M
Схоже на те. Виправлено.
Певно всі ці фото мали бути з фільтрами як демо, але не є.
Виправлено.
Прибрав посилання.
UX bug: користувач має складність змінити або видалити комент, коли комент починається з цитати (
<blobkquote>
). Blockquote перекриває кнопки зміни/видаленя.404