В контейнере docker ls говорит./html Нет такого файла или каталога, но mkdir говорит, что файл не существует?
Я развертываю приложение стека MEAN на докере. Моя версия докера 18.09.2. Моя докерская compose-версия - 1.23.2. Я работаю на MacOS 10.14, если это имеет значение.
Я использую 3 изображения для создания своего проекта. nginx:1.15.12-alpine для обслуживания angular, mongo для базы данных и узел:11.14.0-alpine для моего экспресс-сервера.
Все, кроме nginx на alpine, прекрасно работает. Я пытаюсь сопоставить./Client/dist/Client с /usr/share/ngnix/html под томами в моем файле docker-compose.yml (см. Ниже), поэтому мне не нужно копировать все заново. Этот метод работает для моего изображения mongodb.
Однако, когда я запускаю 'docker-compose up' и запускаю все, я получаю ошибку 404 при переходе на localhost:8181. После некоторых раскопок я обнаружил это:
Я не знаю, что с этим делать. Я пытался использовать ldd, но он говорит, что это не динамическая программа. Может кто-нибудь объяснить мне, что здесь происходит?
Я должен также упомянуть, это работало, прежде чем я добавил изображение монго. заранее спасибо
Вот мой docker-compose.yml в корне моего проекта
version: '2' # specify docker-compose version
# Define the services/containers to be run
services:
nginx: # name of the first service
hostname: localhost
image: nginx:1.15.12-alpine
volumes:
# - $PWD/Client/nginx.conf:/etc/nginx/conf.d/
- $PWD/Client/dist/Client/:/usr/share/nginx/html/
ports:
- "8181:80" # specify port forwarding
depends_on:
- npm
npm:
build: ./docker-config
command: yarn build
working_dir: /home/node/app
volumes:
- $PWD/Client:/home/node/app
express: #name of the second service
build: ./docker-config
command: yarn start
working_dir: /home/node/app
environment:
- NODE_ENV=production
volumes:
- $PWD/Server:/home/node/app
ports:
- "3000:3000" #specify ports forwarding
depends_on:
- database # link this service to the database service
database: # name of the third service
image: mongo # specify image to build container from
ports:
- "27017:27017" # specify port forwarding
environment:
MONGO_INITDB_DATABASE: "callout_db"
volumes:
- $PWD/db:/data/db
- $PWD/docker-config/mongo-config:/docker-entrypoint-initdb.d
Вот мой Dockerfile в./docker-config/
# Create image based on the official Node 6 image from the dockerhub
FROM node:11.14.0-alpine
# Installs Bcrypt and Angular dependencies
RUN apk add python make g++ --no-cache;
RUN yarn global add @angular/cli node-gyp bcrypt
# Copies the entrypoint to the binaries folder
COPY ./entrypoint.sh /bin
# Installs the app
ENTRYPOINT ["/bin/entrypoint.sh"]
entrypoint.sh - это простое решение проблемы, с которой я столкнулся с Yarn и docker-compose.yml.
#!/bin/sh
yarn install
exec "$@"