Точка входа в 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