Создание docker-образов#
Для установки в системах оркестрации контейнеризированных приложений необходимо предварительно создать docker-образа для элементов развертывания:
docker image szux-bh;
docker image szux-pl.
Создание docker image szux-bh#
Создайте на локальном компьютере 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.
Создайте 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 |
docker push szux-bh to registry |
docker push < your to path >/szux-bh:${distrib_version} |
your to path — путь в docker registry |
Создание docker image szux-pl#
Создайте на локальном компьютере 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.
Создайте 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 |
docker push szux-pl to registry |
docker push < your to path >/szux-pl:${distrib_version} |
your to path — путь в docker registry |