В данном примере показан, как запустить 2 JAR файла в одном контейнере. В качестве базового образа будем использовать "phusion/baseimage" Для начала необходимо создать скрипты запуска, в для удобства в примере они будут называться "start-first.sh" и "start-second.sh", в них описываем запуск JAR файлов, к примеру start-first.sh start-second.sh И создаем Dockerfile
Для того, чтобы изменить владельца скопированных файлов в контейнере, необходимо к команде "COPY" добавить ключ "—chown" Например:
Пример сборки докер образа MySQL 8 с базой данных, с дамп файла. Содержимое: Dockerfile mysqld.cnf dump.sql Dockerfile: Обратите внимание, что теперь переменные "MYSQL_USER" и "MYSQL_PASSWORD" задаются в Dockerfile В файле "my.cnf" необходимо заменить только дефолтный путь хранения файлов MySQL mysqld.cnf Путь в этой строке: На другой путь: И собираем образ:
При попытке выполнить "docker login" на Ubuntu появляется следующая ошибка: Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY` Решение:
При попытке обновить список репозиториев в Docker образе основанного на "node:8" появляется следующая ошибка: Err http://http.debian.net jessie-backports/main amd64 Packages Решение Dockerfile:
При попытке выполнить команду внутри Docker контейнера с Jenkins'а появляется следующая ошибка: Решение: Использовать вместо: следующее:
Пример деплоя в Docker Swarm с Jenkins'а используя stack deploy. Jenkinsfile:
При попытке запустить "chrome" в Docker образе "Node" получил следующую ошибку: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory Решение Dockerfile:
За основу берем Ubuntu 18.04, устанавливаем Android SDK, так же устанавливаем ruby, nodejs и yarn. И пробрасываем пользователя Jenkins в контейнер, для выполнения привилегированных команд. Dockerfile:
Задача: Получить и SSL сертификат для Nginx'a, который живет в контейнере, от Let’s Encrypt и автоматически его продлевать Nginx в контейнере настроен пока только на прослушивание 80-го порта. В контейнер примонтирована директория с хост машины, для верификации сертификатов, и этот путь описан в локейшене. В примере используется Docker-Compose, но он не является обязательным. app.conf docker-compose.yaml