Входные параметры: 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] указан корректно для сохранения данных.
×
Контейнер Docker
Данный промпт предоставляет структурированное руководство для создания Docker-конфигурации. Он запрашивает ключевые параметры у пользователя, разбивает процесс на логические этапы (создание Dockerfile, сборка, запуск), включает критерии успеха и предупреждает о частых ошибках, таких как использование чувствительных данных в Dockerfile или конфликты портов.
Категория:
Написание кода
Промпт на русском языке:
Промпт на английском языке:
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.