Точка входа в Dockerfile конфликтует с контекстом docker-compose

У меня есть настройка докера, которая не имеет Dockerfile или docker-compose в корне, потому что есть много сервисов.

build
 client.Dockerfile
deployments
 docker-compose.yml
web
  core
    scripts
      run.sh

докер-Compose

version: "3.1"
services:
  client:
    build:
      context: ..
      dockerfile: ./build/client.Dockerfile
    volumes:
      - ./web/core:/app
    ports:
      - 3000:3000
      - 35729:35729

А затем докер-файл:

FROM node:10.11

ADD web/core/yarn.lock /yarn.lock
ADD web/core/package.json /package.json

ENV NODE_PATH=/node_modules
ENV PATH=$PATH:/node_modules/.bin
RUN yarn

WORKDIR /app
ADD web/core /app

EXPOSE 3000
EXPOSE 35729

RUN cat /app/scripts/run.sh

ENTRYPOINT ["/bin/bash", "/app/scripts/run.sh"]
CMD ["start"]

Теперь команда RUN отображает результат файла, чтобы он был там. Однако при запуске docker-compose up client_1 | /bin/bash: /app/scripts/run.sh: No such file or directory

Я предполагаю, что это как-то связано с контекстом docker-compose, потому что когда dockerfile находился в корневом каталоге, он работал нормально.

У меня такое ощущение, что докер по сути предназначен для работы только в корне.

Контекст:

Я хочу, чтобы в режиме реального времени перезагружался сервер создания-реакции-приложения, например: https://www.peterbe.com/plog/how-to-create-react-app-with-docker.

Я хотел бы настроить свой проект следующим образом: https://github.com/golang-standards/project-layout

1 ответ

Решение

Ваш объем неправильно растет. Это должно решить проблему. Я создал похожую структуру папок. Из корневой папки build побежал docker-compose -f ./deployments/docker-compose.yml up, Это работает нормально, только я меняю путь громкости.

volumes:
  - ../web/core:/app
Другие вопросы по тегам