Промпт для настройки контейнера Docker

×

Контейнер Docker

Данный промпт предоставляет структурированное руководство для создания Docker-конфигурации. Он запрашивает ключевые параметры у пользователя, разбивает процесс на логические этапы (создание Dockerfile, сборка, запуск), включает критерии успеха и предупреждает о частых ошибках, таких как использование чувствительных данных в Dockerfile или конфликты портов.

Иконка глаза 1
Категория: Написание кода
Модели: ChatGPT Claude Grok DeepSeek
Промпт на русском языке:
Входные параметры:
1. Название и тег образа: [IMAGE_NAME:TAG]
2. Порт хоста для проброса: [HOST_PORT]
3. Ключевые переменные окружения: [ENV_VAR_1=value1,ENV_VAR_2=value2]
4. Необходимые тома/директории: [host_dir:container_dir]
5. Команда для запуска внутри контейнера: [START_COMMAND]

Ты эксперт по Docker. Твоя задача - создать полную и рабочую конфигурацию для запуска приложения в контейнере. Действуй пошагово.

Шаг 1: Проанализируй предоставленные входные параметры. Если какой-либо параметр не указан, запроси его у пользователя, прежде чем продолжить.

Шаг 2: На основе параметров сгенерируй содержимое файла `Dockerfile`. Включи в него:
- Базовый образ (если не указано иное, используй последнюю официальную LTS-версию Node.js, Python или Alpine, в зависимости от контекста приложения).
- Инструкции для копирования кода приложения в рабочую директорию образа.
- Команды для установки всех необходимых зависимостей (например, запуск `npm install`, `pip install -r requirements.txt`).
- Экспоз порта, который использует приложение внутри контейрана ([CONTAINER_PORT]).
- Инструкцию `CMD` или `ENTRYPOINT` для выполнения [START_COMMAND].

Шаг 3: Создай команду для сборки Docker-образа. Команда должна использовать параметр [IMAGE_NAME:TAG] и корректно ссылаться на `Dockerfile`.

Шаг 4: Составь команду для запуска контейнера из собранного образа. Команда должна:
- Запускать контейнер в фоновом режиме (флаг `-d`).
- Пробрасывать порт [HOST_PORT] на порт приложения в контейнере [CONTAINER_PORT] (флаг `-p`).
- Передавать все переменные окружения из параметра [ENV_VAR_1=value1,ENV_VAR_2=value2] (флаг `-e`).
- Монтировать тома, указанные в [host_dir:container_dir] (флаг `-v`).
- Присвоить контейнеру понятное имя, производное от [IMAGE_NAME].

Критерии успешного выполнения:
- Сгенерированный `Dockerfile` не содержит синтаксических ошибок и использует актуальные best practices (например, многоступенчатую сборку, если применимо).
- Команды сборки и запуска готовы к немедленному выполнению в bash-совместимой командной строке.
- Конфигурация гарантирует, что приложение будет изолировано, а его данные (если есть) будут сохранены с помощью томов.

Предупреждения:
- ВНИМАНИЕ: Не указывай в `Dockerfile` чувствительные данные (пароли, API-ключи). Для этого используй переменные окружения при запуске контейнера.
- ВНИМАНИЕ: Убедись, что порт [HOST_PORT] на хосте свободен. В противном случае команда `docker run` завершится с ошибкой.
- ВНИМАНИЕ: Если приложение stateful (например, база данных), убедись, что том [host_dir:container_dir] указан корректно для сохранения данных.
Промпт на английском языке:
Input Parameters:
1. Image name and tag: [IMAGE_NAME:TAG]
2. Host port for mapping: [HOST_PORT]
3. Key environment variables: [ENV_VAR_1=value1,ENV_VAR_2=value2]
4. Required volumes/directories: [host_dir:container_dir]
5. Command to run inside the container: [START_COMMAND]

You are a Docker expert. Your task is to create a complete and working configuration to run an application in a container. Proceed step by step.

Step 1: Analyze the provided input parameters. If any parameter is missing, request it from the user before proceeding.

Step 2: Based on the parameters, generate the contents of the `Dockerfile`. Include:
- A base image (if not specified otherwise, use the latest official LTS version of Node.js, Python, or Alpine, depending on the application context).
- Instructions to copy the application code into the image's working directory.
- Commands to install all necessary dependencies (e.g., run `npm install`, `pip install -r requirements.txt`).
- Expose the port that the application uses inside the container ([CONTAINER_PORT]).
- A `CMD` or `ENTRYPOINT` instruction to execute the [START_COMMAND].

Step 3: Create the command to build the Docker image. The command must use the [IMAGE_NAME:TAG] parameter and correctly reference the `Dockerfile`.

Step 4: Form the command to run the container from the built image. The command must:
- Run the container in detached mode (the `-d` flag).
- Map the host port [HOST_PORT] to the application's port inside the container [CONTAINER_PORT] (the `-p` flag).
- Pass all environment variables from the parameter [ENV_VAR_1=value1,ENV_VAR_2=value2] (the `-e` flag).
- Mount the volumes specified in [host_dir:container_dir] (the `-v` flag).
- Assign the container a clear name derived from [IMAGE_NAME].

Success Criteria:
- The generated `Dockerfile` contains no syntax errors and uses current best practices (e.g., multi-stage build, if applicable).
- The build and run commands are ready for immediate execution in a bash-compatible command line.
- The configuration ensures the application is isolated and its data (if any) is persisted using volumes.

Warnings:
- WARNING: Do not include sensitive data (passwords, API keys) in the `Dockerfile`. Use environment variables when running the container for this purpose.
- WARNING: Ensure the host port [HOST_PORT] is free. Otherwise, the `docker run` command will fail.
- WARNING: If the application is stateful (e.g., a database), ensure the volume [host_dir:container_dir] is correctly specified for data persistence.