Я не могу запустить свое приложение Vue, используя Docker и docker -compose. Все остальные приложения и службы работают (несколько приложений NET, nginx -proxy и letsencrypt- nginx -proxy-companion), но при запуске приложения vue появляется следующее сообщение об ошибке:
| npm ERR! path /app/package.json
| npm ERR! code ENOENT
| npm ERR! errno -2
| npm ERR! syscall open
| npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
| npm ERR! enoent This is related to npm not being able to find a file.
Вот так выглядит мой docker -compose.yaml:
version: "3.7"
services:
nginx-proxy:
image: jwilder/nginx-proxy:latest
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /var/lib/docker/volumes/certs/_data:/etc/nginx/certs:ro
- /var/lib/docker/volumes/vhost/_data:/etc/nginx/vhost.d
- /var/lib/docker/volumes/html/_data:/usr/share/nginx/html
- /var/lib/docker/volumes/config/_data:/etc/nginx/conf.d
- /var/lib/docker/volumes/nginx/_data:/etc/init.d/
depends_on:
- app1
- app2
- vue-app
nginx-proxy-letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: nginx-proxy-letsencrypt
environment:
- DEFAULT_EMAIL=mail@mail.com
- NGINX_PROXY_CONTAINER=nginx-proxy
depends_on:
- nginx-proxy
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /var/lib/docker/volumes/certs/_data:/etc/nginx/certs:rw
- /var/lib/docker/volumes/vhost/_data:/etc/nginx/vhost.d
- /var/lib/docker/volumes/html/_data:/usr/share/nginx/html
app1:
image: user/app1:latest
environment:
- VIRTUAL_HOST=example.com,www.example.com
- LETSENCRYPT_HOST=example.com,www.example.com
volumes:
- /var/lib/docker/volumes/sqllite/_data:/app/data
- /var/lib/docker/volumes/uploadfolder/_data:/app/wwwroot/uploads
app2:
build: ~/app_2
environment:
- VIRTUAL_HOST=app2.example.com,www.app2.example.com
- LETSENCRYPT_HOST=app2.example.com,www.app2.example.com
vue-app:
build: ~/vue_app
environment:
- VIRTUAL_HOST=vueapp.example.com,www.vueapp.example.com
- LETSENCRYPT_HOST=vueapp.example.com,www.vueapp.example.com
volumes:
- .:/app
- /app/node_modules
volumes:
certs:
vhost:
html:
networks:
default:
external:
name: nginx-proxy
И мой Docker файл для vue -app:
# base image
FROM node:12.2.0-alpine
# set working directory
WORKDIR /app
# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
# install and cache app dependencies
COPY package.json /app/package.json
RUN npm install
RUN npm install @vue/cli@3.7.0 -g
# start app
CMD ["npm", "run", "serve"]
Файловая структура на моем сервере:
root
| docker-compose.yaml
|
|__app_2
| Dockerfile (in the project root)
|
|__vue_app
Dockerfile (in the project root)
Я что-то упустил?