В контейнере 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 "$@"

0 ответов

Другие вопросы по тегам