У меня есть настройка докера, в которой нет Dockerfile или docker-compose в корне, потому что есть много сервисов.
build
client.Dockerfile
deployments
docker-compose.yml
web
core
scripts
run.sh
docker-compose
version: "3.1"
services:
client:
build:
context: ..
dockerfile: ./build/client.Dockerfile
volumes:
- ./web/core:/app
ports:
- 3000:3000
- 35729:35729
И затемthe dockerfile:
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 находился в корневом каталоге, он работал нормально.
У меня такое ощущение, что докер по сути предназначен для работы только в корне.
Контекст:
Я хочу перезагружать сервер create-реакции-приложения в режиме реального времени так: https://www.peterbe.com/plog/how-to-create-react-app-with-docker.
Я бы хотел настроить свой проект следующим образом: https://github.com/golang-standards/project-layout