Сообщения

Сообщения за апрель, 2020

Простое приложение с Docker: сборка и запуск приложения в контейнере

Изображение
Сборка приложения Мы готовы собрать приложение, которое мы создали в предыдущем посте . Убедитесь, что вы все еще на верхнем уровне вашего нового каталога. Вот что должен показать ls: $ ls Dockerfile app.py requirements.txt Теперь запустите команду сборки (build command). Она создает образ Docker, который мы назовем с помощью параметра --tag. Используйте -t, если вы хотите использовать более короткий вариант. docker build --tag=friendlyhello . Где ваш встроенный образ? Он находится в локальном реестре образов Docker вашей машины: $ docker image ls REPOSITORY TAG IMAGE ID friendlyhello latest 326387cea398 Обратите внимание, что тег по умолчанию latest (последний). Полный синтаксис для опции тега будет --tag=friendlyhello:v0.0.1. Устранение неполадок для пользователей Linux Настройки прокси-сервера Прокси-серверы могут блокировать подключения к вашему веб-приложению после его установки и запуска. Если вы находитесь

Простое приложение с Docker: определение контейнера с помощью Dockerfile

Изображение
Пришло время приступить к созданию приложения в стиле Docker. Мы начинаем с нижней части иерархии такого приложения, контейнера (container), который описывает этот пост. Над этим уровнем находится служба (service), которая определяет поведение контейнеров в процессе эксплуатации. Наконец, на верхнем уровне находится стек (stack), определяющий взаимодействия всех служб. Stack Services Container Ваша новая среда разработки Раньше, если бы вы начали писать приложение на Python, первым делом вам нужно было установить среду исполнения Python на ваш компьютер. Но это создает ситуацию, когда среда на вашем компьютере должна быть идеальной для того, чтобы ваше приложение работало должным образом, а также должна соответствовать вашей производственной среде. С помощью Docker вы можете просто взять переносимую среду выполнения Python как образ, без необходимости установки. Затем ваша сборка может включать в себя базовый образ Python вместе с кодом приложения, обеспечивая совместное перем

Подготовка вашего Docker окружения

Изображение
Установите поддерживаемую версию Docker Community Edition (CE) или Enterprise Edition (EE) на поддерживаемой платформе . Установка Docker CE на Ubuntu: # Установка использования Docker репозитория sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" # Установка Docker CE sudo apt-get update sudo apt-get install docker-ce # Добавление своего пользователя в docker group sudo usermod -aG docker $USER # Установка docker/compose sudo apt-get install python3-pip sudo pip3 install --upgrade pip3 sudo pip3 install docker-compose Тестирование версии Docker Запустите docker --version и убедитесь, что у вас есть поддерживаемая версия Docker: docker --version Docker version 17.12.0-ce, build c9

Kotlin, базовый синтаксис: переменные

Изображение
Локальные переменные только для чтения определяются с помощью ключевого слова val. Им может быть присвоено значение только один раз. val a: Int = 1 // немедленное назначение val b = 2 // `Int` тип выведен val c: Int // Тип требуется, // когда инициализатор не предоставлен c = 3 // отложенное присваивание Переменные, которые можно переназначить, используют ключевое слово var: var x = 5 // `Int` тип выведен x += 1 Переменные верхнего уровня: val PI = 3.14 var x = 0 fun incrementX() { x += 1 } Читайте также: Kotlin, базовый синтаксис: пакет, импорт, входная точка, функции

Kotlin, базовый синтаксис: пакет, импорт, входная точка, функции

Изображение
Определение пакета и импорты Спецификация пакета должна быть вверху исходного файла: package my.demo import kotlin.text.* // ... Совпадение каталогов и пакетов не требуется: исходные файлы могут быть произвольно размещены в файловой системе. Точка входа в программу Точкой входа в Kotlin приложение является main функция. fun main() { println("Hello world!") } Функции Функция, имеющая два параметра Int с типом возврата Int: fun sum(a: Int, b: Int): Int { return a + b } Функция с телом выражения и предполагаемым типом возврата: fun sum(a: Int, b: Int) = a + b Функция не возвращает никакого значимого значения: fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}") } Тип возврата Unit может быть опущен: fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a + b}") }

Концепции Docker

Изображение
Docker - это платформа для разработчиков и системных администраторов для разработки, развертывания и запуска приложений с контейнерами. Использование контейнеров Linux для развертывания приложений называется контейнеризацией. Контейнеры не новы, но новое здесь - это их использование для легкого развертывания приложений. Контейнеризация становится все более популярной, потому что контейнеры: Гибкие : даже самые сложные приложения могут быть упакованы в контейнеры. Легкие : контейнеры используют и разделяют ядро хоста. Взаимозаменяемые : вы можете развертывать обновления и выполнять обновления на лету. Переносимые : вы можете создавать локально, развертывать в облаке и работать где угодно. Масштабируемые : Вы можете увеличивать и автоматически распределять реплики контейнера. Складываемые в стеки : вы можете размещать сервисы вертикально и на лету. Образы и контейнеры Контейнер запускается путем запуска образа (image). Образ - это исполняемый пакет, который включает в себя в