Создание docker-образов#

Для установки в системах оркестрации контейнеризированных приложений необходимо предварительно создать docker-образа для элементов развертывания:

  • docker image szux-bh;

  • docker image szux-pl.

Создание docker image szux-bh#

  1. Создайте на локальном компьютере Dockerfile.

    Укажите полный путь расположение файла szux-bh.jar в строке:

    COPY szux-bh.jar $APP_HOME/app.jar

    Рекомендуется szux-bh.jar и Dockerfile хранить в одной директории.

    Тело dockerfile:

    FROM <Указать registry_path>/openjdk-11-rhel8:latest
    
    ENV USER=jboss
    ENV APP_HOME /home/jboss
        
    ENV JAVA_OPTS=""
    ENV EXTRA_JAVA_OPTS=""
    ENV SECURITY_PROFILE=""

    WORKDIR $APP_HOME

    # Определяем привилегированного пользователя для создания директорий и назначения прав.
 
    # Объявляем порт, обслуживаемый приложением.
    EXPOSE 8080/tcp
    # Порт используемый компонентом Actuator от Spring Boot для снятия метрик с приложения
    EXPOSE 8088/tcp
 
    USER root
 
    # Выполняем создание пользователя в группе root. Контейнер всегда стартует от пользователя из группы root.
    RUN id -u $USER &>/dev/null || useradd --no-log-init -r -g 0 $USER \
     # Создаем необходимую директорию для логирования.
     && mkdir logs \
     && mkdir config \
     # Создаем необходимую директорию для сертификатов.
     && mkdir certs \
     # Выполняем смену пользователя-владельца рабочей директории.
     && chown -R $USER:0 . \
     # Выполняем установку прав доступа для пользователя и всей группы владельца.
     && chmod -R u=rX,g=rX,o=r . \
     # Добавляем права на запись в директорию логирования для пользователя и группы владельца.
     && chmod -R u+w,g+w ./logs

    COPY bh/szux-bh-*.jar $APP_HOME/app.jar
    
    # Определяем пользователя для выполнения последующих команд: RUN, CMD, ENTRYPOINT.
    USER $USER:0
    CMD ["sh", "-c","java $JAVA_OPTS $EXTRA_JAVA_OPTS $SECURITY_PROFILE -Djava.security.egd=file:/dev/./urandom -jar $APP_HOME/app.jar"]
    

Registry_path – внутренний или общедоступный docker registry.

  1. Создайте docker image szux-bh.

    Для создания и размещения образа в пространстве выполните команды, указанные в таблице.

    Таблица. Создание docker image szux-bh

Команда

Скрипт

Параметры

create docker image szux-bh

docker build -t < your to path > /szux-bh:${distrib_version}

your to path — путь в docker registry

distrib_version - версия дистрибутива (необходимо для версионирования образов)

docker push szux-bh to registry

docker push < your to path >/szux-bh:${distrib_version}

your to path — путь в docker registry

distrib_version - версия дистрибутива (необходимо для версионирования образов)

Создание docker image szux-pl#

  1. Создайте на локальном компьютере Dockerfile.

    Укажите корректное место расположение файла sizing.zip в строке:

    COPY sizing.zip/sizing.zip

    Рекомендуется bandle (sizing.zip) и c Dockerfile хранить в одной директории.

    Тело dockerfile:


        FROM <Укажите registry_path>/nginx-116-rhel7:latest 
        
        ENV USER=nginx
        
        COPY sizing.zip /sizing.zip
        
        RUN useradd -ms /bin/bash $USER \
          # Распаковываем sizing.zip
            && unzip /sizing.zip -d / && rm -rf /siznig.zip \
          # Создаем каталога под bundle
            && mkdir -p /usr/share/nginx/html/ \
          # Копируем bundle в директорию /usr/share/nginx/
            && mv /sizing /usr/share/nginx/html/ \
          # Выполняем смену пользователя-владельца директорий и выдачу прав
            && chmod -R 755 /usr/share/nginx/ \
            && touch /var/log/nginx/nginx.error.log \
            && chmod -R 777 /var/log/ \
            && chown -R nginx:nginx /var/spool/nginx \
            && chmod -R 755 /var/spool/nginx \
            && chown -R nginx /etc/nginx \
            && chmod -R 777 /var/run/ \
            && chown -R nginx /var/run/ \
            && chown -R nginx:nginx /usr/share/nginx/
 
USER nginx

Registry_path – внутренний или общедоступный docker registry.

  1. Создайте docker image szux-pl.

    Для создания и размещения образа в пространстве выполните команды, указанные в таблице.

    Таблица. Создание docker image szux-pl

Команда

Скрипт

Параметры

create docker image szux-pl

docker build -t < your to path >/szux-pl:${distrib_version} .

your to path — путь в docker registry

distrib_version – версия дистрибутива (необходимо для версионирования образов)

docker push szux-pl to registry

docker push < your to path >/szux-pl:${distrib_version}

your to path — путь в docker registry

distrib_version – версия дистрибутива (необходимо для версионирования образов)