Файл Docker импортирует другой образ и устанавливает

#python #docker #dockerfile

#python #docker #dockerfile

Вопрос:

У меня есть приложение на python, которое использует этот инструмент, и я не могу понять, как это сделать.

Я использовал FROM tyrrrz/discordchatexporter:stable , но тогда как я могу запускать команды из него. Я подумываю об использовании a subprocess.Popen для запуска команд, может кто-нибудь показать мне, как добавить его в dockerfile и как к нему добраться (путь команда)

Это мой Dockerfile

 FROM python:3.8-slim as base

# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1

FROM base AS python-deps

# Install pipenv and compilation dependencies
RUN pip install pipenv
RUN apt-get update amp;amp; apt-get install -y --no-install-recommends gcc

# Install python dependencies in /.venv
COPY Pipfile .
COPY Pipfile.lock .
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy

FROM base AS runtime

# Copy virtual env from python-deps stage
COPY --from=python-deps /.venv /.venv
ENV PATH="/.venv/bin:$PATH"

# Create and switch to a new user
RUN useradd --create-home az
WORKDIR /home/az
USER az

# Install application into container
COPY . .

# Run the application
CMD python main.py
  

Комментарии:

1. Невозможно объединить изображения или вызвать двоичные файлы в одном изображении из другого. Если вам нужно вызвать эти двоичные файлы, вам нужно выполнить RUN какую-то команду в вашем собственном образе, чтобы установить их ( pip install , apt-get install , curl в зависимости от того, как он упакован).

2. @DavidMaze Я этого не знал, спасибо. Я хочу запустить dotnet something.dll параллельно с моим python, возможно ли это? потому что dotnet не установлен по умолчанию.