我正在使用 docker 和 docker-compose 来运行我的 Express Nodejs api。
这是我的泊坞窗文件:
FROM node:10-alpine
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN chmod 755 /usr/src/app
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
正如我提到的,我正在使用 docker-compose,这里是 docker-compose.yml 文件内容:
version: "3"
services:
service:
build: .
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
ports:
- 3001:3001
command: npm start
Run Code Online (Sandbox Code Playgroud)
运行 docker-compose up 后,我遇到一个错误,表示无法找到 package.json。
这是错误:
service_1 | npm ERR! path /usr/src/app/package.json
service_1 | npm ERR! code ENOENT
service_1 | npm ERR! errno -2 …Run Code Online (Sandbox Code Playgroud) 我正在处理Django项目,但出现此错误,“状态匹配查询不存在”。为什么会这样呢?状态在模型存储区中,您可以向我解释此错误以及如何解决吗?
谢谢。观看次数:
def Test(request):
stores = Store.objects.all()
data = []
for store in stores:
data.append({
'id': store.id,
'name': store.name,
'address': store.address,
'state': store.state,
})
return HttpResponse(json.dumps(data), 'application/json')
Run Code Online (Sandbox Code Playgroud)
楷模:
class State(models.Model):
name = models.CharField(max_length=255)
shortname = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class City(models.Model):
name = models.CharField(max_length=255)
state = models.ForeignKey(State)
def __unicode__(self):
return self.name
class Store(models.Model):
name = models.CharField(max_length=255, null=True, blank=True)
address = models.CharField(max_length=255, blank=True, null=True)
lon = models.FloatField(blank=True, null=True)
lat = models.FloatField(blank=True, null=True)
state = models.ForeignKey(State)
city = models.ForeignKey(City)
def __unicode__(self): …Run Code Online (Sandbox Code Playgroud) 我有一个来自图像的 Dockerfile。我想修改它并添加一些文件操作,这些操作将与 FROM 图像给出的不同 WORKDIR 相关。因此,我想在修改 WORKDIR 之前将 WORKDIR 保存到一个变量,并在命令结束后从该变量恢复 WORKDIR。怎么做?
想要的结果:
Dockerfile伪代码:
FROM centos:7
some original commands
some original commands
...
var=WORKDIR #save WORKDIR <== how to do that?
WORDIR /my/path/
my commands
my commands
...
WORKDIR = var # restore path that was before <== how to do that?
Run Code Online (Sandbox Code Playgroud)