Перейти к основному содержимому
Как собрать контейнерный образ

Как собрать контейнерный образ

1. Cоздайте

Containerfile — это текстовый файл с инструкциями для сборки образа контейнера. Это полный аналог Dockerfile.

# ИНСТРУКЦИЯ [опции] аргумент

FROM docker.io/library/nginx:alpine

COPY default.conf /etc/nginx/conf.d/default.conf

COPY index.html /usr/share/nginx/html/
COPY style.css /usr/share/nginx/html/

EXPOSE 80
FROMуказывает базовый образ для контейнера
COPYкопирует файлы с хост-системы в контейнер
EXPOSEинформирует, что контейнер слушает на определенном порту

Другие инструкции можно посмотреть в руководстве: man сontainerfile.

Рекомендации

  1. Контейнеры создаются на основе других образов (кроме scratch), поэтому в Containerfile должна быть хотя бы одна инструкция FROM.

  2. Рекомендуем указывать полный путь к образу, чтобы при сборке Podman понимал, в каком реестре искать образ.

  3. Файлы index.html и style.css нужно создать в директории, где находится Containerfile. Если они берутся с хостовой машины, нужно указать абсолютные пути для них.

2. Напишите конфигурацию приложения

На этом шаге подразумевается конфигурация того приложения, для которого собирается контейнер. В случае Nginx конфигурация может выглядеть так:

# default.conf

server {
listen 80;

location / {
root /usr/share/nginx/html;
try_files $uri $uri/ =404;
}

location /api {
add_header Content-Type application/json;
return 200 '{"msg": "Hello from Nginx JSON file!"}';
}
}

3. Соберите образ

Для сборки образа существует команда podman build.

podman build -q -t my_own_nginx_image .

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

Вывод
# вывод - id образа

bddc36f6a058a6217dcf439a9b03877d60b17252d28fb57b13c142ddfa81b306

Опции:

-qcкрыть вывод процесса сборки
-tприсвоить имя образу

4. Проверьте работоспособность контейнера

Чтобы проверить работоспособность контейнера с образом, рекомендуем запустить контейнер и приложение по инструкции.