Данная лабораторная работа посвещена изучению систем автоматизации развёртывания и управления приложениями на примере Docker
$ open https://docs.docker.com/get-started/
- 1. Создать новую ветку с наименованием lab13 в репозитории Labs на сервисе GitHub
- 2. Ознакомиться со ссылками учебного материала
- 3. Выполнить инструкцию учебного материала
- 4. Составить отчет и отправить ссылку личным сообщением в Slack
Устанавливаем переменную окружения GITHUB_USERNAME
$ export GITHUB_USERNAME=<имя_пользователя>
Скачиваем данные из репозитория Labs и создаем новую ветку lab13
$ git clone https://github.com/${GITHUB_USERNAME}/lab12 lab13
$ cd lab13
$ git checkout lab12
$ git checkout -b lab13
Устанавливаем Docker
$ # for Ubuntu 17.10
$
$ sudo apt-get install docker.io
$ docker --version
Docker version 18.03.0-ce, build 0520e24
Создаем конфигурационный файл для Docker
$ cat > Dockerfile <<EOF
FROM ubuntu:16.04 # устанавливаем среду выполнения
RUN apt update # запускаем обновление системы
RUN apt install -yy gcc g++ cmake # устанавливаем необходимые инструменты
COPY . print/
WORKDIR print # устанавливаем директорию для последующей работы
RUN cmake -H. -B_build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=_install # запускаем сборку
RUN cmake --build _build
RUN cmake --build _build --target install
ENV LOG_PATH /home/logs/log.txt # устанавливаем переменную окружения, в которой находится лог-файл
VOLUME /home/logs # устанавливаем путь для сохранения данных
WORKDIR _install/bin
CMD ./demo # запускаем собранный проект
EOF
Инициализируем сборку образа с имененм logger
$ docker build -t logger .
Просматриваем существующие образы
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
logger latest 7fabdac96545 About a minute ago 367MB
ubuntu 16.04 f975c5035748 3 weeks ago 112MB
Инициализируем работу контейнера на образе logger
$ mkdir logs
$ docker run -it -v "$(pwd)/logs/:/home/logs/" logger
text1
text2
text3
<C-D>
Выводим информацию об объектах образа
$ docker inspect logger
Просматриваем существующие контейнеры и какие образы они используют
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
714d05351340 logger "/bin/sh -c ./demo" 17 minutes ago Exited (0) 16 minutes ago festive_northcutt
Просматриваем содержимое файла log.txt
$ cat logs/log.txt
Вносим изменения в файл README.md
$ vim README.md
:s/lab12/lab13/g<CR>
:wq
Вносим изменения в файл .travis.yml
$ vim .travis.yml
/lang<CR>o
services:
- docker<ESC>
jVGddo
script:
- docker build -t logger .<ESC>
Отправляем измененные файлы в репозиторий
$ git add Dockerfile
$ git add .travis.yml
$ git commit -m"adding Dockerfile"
$ git push origin master
Инициализируем сборку в TravisCI
$ travis login --auto
$ travis enable
Copyright (c) 2017 Братья Вершинины