Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка с контекстом при билде проекта (forbidden path outside the build context: ../poetry.lock ()) #18

Open
simonoffcc opened this issue Jan 22, 2024 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@simonoffcc
Copy link

При билде проекта через sudo make project-start вот такая ошибка:

ERROR: Service 'bot' failed to build: COPY failed: forbidden path outside the build context: ../poetry.lock ()
make: *** [Makefile:61: project-start] Error 1

В ней очевидно и понятно что не так, при этом прогуглив, нашёл такое решение: https://stackoverflow.com/questions/69615253/copy-failed-forbidden-path-outside-the-build-context-docker-compose.
Однако сам сделал немного по-другому, заменив в Dockerfile с

WORKDIR /app
COPY ../poetry.lock pyproject.toml ./

на

WORKDIR /app
COPY poetry.lock pyproject.toml ./

И вроде как всё заработало. Я думаю, проблема не только у меня, либо я что-то не так делаю. Поправьте если так.

Предположили, что проблема может быть с контекстом. Вот соответствующие выводы:
изображение
изображение

Полный Dockerfile (не изменён, такой же как в шаблоне):

FROM python:3.10-slim as python-base

ENV POETRY_VERSION=1.5.1 \
    POETRY_HOME=/opt/poetry \
    POETRY_VENV=/opt/poetry-venv \
    POETRY_CACHE_DIR=/opt/.cache
    
FROM python-base as poetry-base

RUN python3 -m venv $POETRY_VENV \
    && $POETRY_VENV/bin/pip install -U pip setuptools \
    && $POETRY_VENV/bin/pip install poetry==${POETRY_VERSION}

FROM python-base as app

COPY --from=poetry-base ${POETRY_VENV} ${POETRY_VENV}
ENV PATH="${PATH}:${POETRY_VENV}/bin"

WORKDIR /app
COPY ../poetry.lock pyproject.toml ./

RUN poetry check && \
    poetry install --no-interaction --no-cache --no-root

COPY .. .
CMD ["poetry", "run", "python", "-m", "src.bot"]

Полный docker-compose.yml (не изменён, такой же как в шаблоне):

version: '3.7'
services:
  redis:
    build:
      context: buildfiles
      dockerfile: redis.dockerfile
    env_file:
      - .env
    restart: on-failure
    ports:
      - "6378:6378"
  db:
    image: postgres:15-alpine
    env_file:
      - .env
    volumes:
      - pgdata:/var/lib/postgresql/data
    restart: on-failure
    ports:
      - "5432:5432"
  bot:
    build:
      context: .
      dockerfile: buildfiles/Dockerfile
    env_file:
      - .env
    restart: always
    depends_on:
      - db
      - redis


volumes:
  pgdata:
@MassonNN MassonNN self-assigned this Jan 22, 2024
@MassonNN MassonNN added the bug Something isn't working label Jan 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants