我正在尝试让它与docker-compose和volumes一起工作nodejs,我想编辑我的代码,这就是我应该使用volumes的原因。
当我没有将卷放到docker-compose.yml文件中时,它工作了!但是有了体积就没有功了。
有什么想法吗?
这是我的docker-compose.yml:
version: "3.2"
services:
node:
container_name: node_app
build:
context: ./
dockerfile: dockerfiles/Dockerfile
user: "node"
environment:
- NODE_ENV=production
volumes:
- .:/home/app
ports:
- "3000:3000"这是我的Dockerfile:
FROM node:carbon-stretch
WORKDIR /home/app
COPY package*.json ./
RUN npm i express -S
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]这是我的package.json:
{
"name": "docker_web_app",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "First Last <test@gmail.com>",
"main": "server.js",
"scripts": {
"start": "node server.js"
}
}这是我的server.js:
'use strict'
const express = require('express')
// Constants
const PORT = 3000
const HOST = '0.0.0.0'
// App
const app = express()
app.get('/', (req, res) => {
res.send('Hello world\n')
});
app.listen(PORT, HOST)
console.log(`Running on http://${HOST}:${PORT}`)谢谢!
发布于 2018-01-05 23:52:29
问题是,当您将文件夹.挂载到/home/app上时,/home/app中的所有内容都会被主机上的.内容所掩盖。这有效地删除了RUN npm i express -S引入的东西
为了解决这个问题,你需要将你想要编辑的代码隔离到一个单独的文件夹中(如果已经不是这样的话)
volumes:
- ./code:/home/app/code发布于 2018-01-05 12:19:57
尝试将docker-compose文件解析为有效的yaml格式,您可以重试:
version: "3.2"
services:
node:
container_name: node_app
build:
context: ./
dockerfile: dockerfiles/Dockerfile
user: "node"
environment:
- NODE_ENV=production
volumes:
- .:/home/app
ports:
- "3000:3000"https://stackoverflow.com/questions/48104968
复制相似问题