我们已经使用 docker-compose 一年了,没有遇到任何问题。在过去的一周里,我们每个人都开始遇到与权限相关的奇怪错误
at internal/main/run_main_module.js:17:47 : Error: EPERM: operation not permitted, open <PATH TO FILE>
仅当我切换分支时才会发生
组成结构:
version: "2.4"
# template:
x-base: &base-service-template
env_file:
- ./.env
working_dir: /app/
volumes:
- ./src:/app/src:cached
services:
service1:
image: service1
<<: *base-service-template
service2:
image: service2
<<: *base-service-template
Run Code Online (Sandbox Code Playgroud)
我们都在 OSX 上工作。我们尝试授予 docker 对文件系统的权限,但仍然不起作用。
但有一些东西是有效的。重新启动守护进程。但我不想每次切换分支时都重新启动守护进程
附加信息:
每个服务的 docker 文件库如下所示
FROM node:12-alpine as builder
ENV TZ=Europe/London
RUN npm i npm@latest -g
RUN mkdir /app && chown node:node /app
WORKDIR /app
RUN apk add --no-cache python3 make g++ …
Run Code Online (Sandbox Code Playgroud) 我只是设置了我的第一个 virtualenv 并想在其中使用 Flask 我在 Windows 中使用了激活脚本,就像在那里的每个教程中所说的那样****我想我应该注意我已经从虚拟环境中安装了 Flask。
我运行了命令
pip install flask
Collecting flask
Using cached Flask-0.11.1-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from flask)
Using cached Jinja2-2.8-py2.py3-none-any.whl
Collecting Werkzeug>=0.7 (from flask)
Using cached Werkzeug-0.11.10-py2.py3-none-any.whl
Collecting click>=2.0 (from flask)
Collecting itsdangerous>=0.21 (from flask)
Collecting MarkupSafe (from Jinja2>=2.4->flask)
Using cached MarkupSafe-0.23.tar.gz
Building wheels for collected packages: MarkupSafe
Running setup.py bdist_wheel for MarkupSafe ... error
Complete output from command c:\users\eitan\pycharmprojects\todo-api\flask\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\eitan\\appdata\\local\\temp\\pip-build-egsygt\\MarkupSafe\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d c:\users\eitan\appdata\local\temp\tmpiyvrkbpip-wheel- --python-tag cp27:
running …
Run Code Online (Sandbox Code Playgroud) 我很难找到有关最近困扰我的问题的答案。我应该一直await
承诺吗?
我是什么意思?
假设我有一个返回承诺的函数,但我没有对从该承诺返回的值做任何事情。我还应该等待吗?或者我应该把它留在一个 try catch 中
我应该等待返回 Promise 的函数吗?
const specialFunction = async () => {
try {
await handleEventsInsertion(body)
} catch (error) {
logger.error(error)
}
}
Run Code Online (Sandbox Code Playgroud)
该handleEventsInsertion
方法是实际将事件插入数据库的方法。但我没有对这个方法返回的承诺做任何事情。所以我应该等待吗?如果有拒绝,则会导致未经处理的拒绝
有没有我不应该await
承诺的情况?
我对有关承诺的某些部分感到困惑,我读过多篇文章,看过多个视频,我想问一些事情:
据我目前的了解,当创建承诺时就开始运行。
如果代码中未使用从承诺返回的值,我是否需要等待承诺?
一个场景是:假设我正在系统中处理一个任务,并且我想将信息记录到 mongodb,当我调用插入函数时,我会得到一个承诺。执行存在,但我不关心它的结果
如果我不等待并且出现错误,我将无法处理它。
上述问题的后续问题:
从我读到的内容来看,await
它实际上阻止了异步函数的执行,但是如果它阻止了函数的执行,它怎么不会阻止事件循环的其余部分?
node.js ×3
javascript ×2
devops ×1
docker ×1
flask ×1
promise ×1
python ×1
virtualenv ×1
windows ×1