Я использую docker-compose и nodemon для моего разработчика.моя фс выглядит так:
├── code
│ ├── images
│ │ ├── api
│ │ ├── db
│ └── topology
│ └── docker-compose.yml
Обычно, когда я запускаю docker-compose up --build
, файлы копируются с моего локального компьютера в контейнеры.Поскольку я нахожусь в режиме разработки, я не хочу запускать docker-compose up --build
каждый раз, поэтому я использую volume
для совместного использования каталога между моим локальным компьютером и контейнером.Я провожу несколько исследований, и вот что я получаю: API, Dockerfile:
FROM node:8
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install nodemon -g --save
RUN npm install
CMD [ "nodemon", "app.js" ]
DB, Dockerfile:
FROM mongo:3.2-jessie
docker-compose.yml
version: '2'
services:
api:
build: ../images/api
volumes:
- .:/usr/src/app
ports:
- "7000:7000"
links: ["db"]
db:
build: ../images/db
ports:
- "27017:27017"
Проблема в том, что при запуске docker-compose up --build
у меня появляется эта ошибка:
---> 327987c38250
Removing intermediate container f7b46029825f
Step 7/7 : CMD nodemon app.js
---> Running in d8430d03bcd2
---> ee5de77d78eb
Removing intermediate container d8430d03bcd2
Successfully built ee5de77d78eb
Recreating topology_db_1
Recreating topology_api_1
Attaching to topology_db_1, topology_api_1
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=5b93871d0f4f
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] db version v3.2.21
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] git version: 1ab1010737145ba3761318508ff65ba74dfe8155
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1t 3 May 2016
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] allocator: tcmalloc
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] modules: none
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] build environment:
db_1 | 2018-09-22T10:08:41.679+0000 I CONTROL [initandlisten] distmod: debian81
db_1 | 2018-09-22T10:08:41.680+0000 I CONTROL [initandlisten] distarch: x86_64
db_1 | 2018-09-22T10:08:41.680+0000 I CONTROL [initandlisten] target_arch: x86_64
db_1 | 2018-09-22T10:08:41.680+0000 I CONTROL [initandlisten] options: {}
db_1 | 2018-09-22T10:08:41.686+0000 I - [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
db_1 | 2018-09-22T10:08:41.687+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress),
db_1 | 2018-09-22T10:08:41.905+0000 I STORAGE [initandlisten] WiredTiger [1537610921:904991][1:0x7fdf57debcc0], txn-recover: Main recovery loop: starting at 89/4096
db_1 | 2018-09-22T10:08:41.952+0000 I STORAGE [initandlisten] WiredTiger [1537610921:952261][1:0x7fdf57debcc0], txn-recover: Recovering log 89 through 90
db_1 | 2018-09-22T10:08:41.957+0000 I STORAGE [initandlisten] WiredTiger [1537610921:957000][1:0x7fdf57debcc0], txn-recover: Recovering log 90 through 90
db_1 | 2018-09-22T10:08:42.148+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
db_1 | 2018-09-22T10:08:42.148+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
db_1 | 2018-09-22T10:08:42.148+0000 I NETWORK [initandlisten] waiting for connections on port 27017
api_1 | Usage: nodemon [nodemon options] [script.js] [args]
api_1 |
api_1 | See "nodemon --help" for more.
api_1 |
topology_api_1 exited with code 0
Если я комментирую:
volumes:
-.:/usr/src/app
Он компилируется и работает правильно.
Может кто-нибудь помочь найти то, что в моем подходе?Спасибо