我有以下 docker-compose 文件:
version: "3.3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
volumes:
- esdata:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
ports:
- "9300:9300"
- "9200:9200"
volumes:
esdata:
Run Code Online (Sandbox Code Playgroud)
(为了清晰起见,我删除了其他服务)我可以在 /var/lib/ docker /volumes/ project_name _esdata 中看到卷,但我希望能够在 docker-compose.yml 所在的目录中创建卷,但我没有找不到办法这样做。
灵感来自How to set a path on host for a named volume in docker-compose.yml,我试过了
version: "3.3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
volumes:
- esdata:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
ports:
- "9300:9300"
- "9200:9200"
volumes:
esdata:
driver: local
driver_opts:
type: 'none' …Run Code Online (Sandbox Code Playgroud) TL; DR:在构建图像docker-compose并docker run image command识别它们时如何传递env变量?
我有这个Dockerfile:
FROM mhart/alpine-node:10
ADD . /app
WORKDIR /app
RUN apk --no-cache add --virtual builds-deps build-base python &&\
yarn global add nodemon &&\
yarn &&\
apk del builds-deps build-base python
Run Code Online (Sandbox Code Playgroud)
和这个docker-compose.yml:
version: "3.3"
services:
api:
build:
context: .
dockerfile: Dockerfile-preprod
image: registry.git.louis-girones.fr:4567/make-your-night/back:preprod
environment:
- NODE_ENV=development
env_file:
- .env
volumes:
- .:/app
ports:
- "${PORT_PREPROD}:${PORT_PREPROD}"
command: sh -c "mkdir -p dist && touch ./dist/app.js && yarn run start"
mongo:
image: mongo:4.0
ports: …Run Code Online (Sandbox Code Playgroud) 我有一个带有以下.gitlab-ci.yml的私有gitlab ce omnibus实例:
image: python:3.6
stages:
- lint
- test
before_script:
- python -V
- pip install pipenv
- pipenv install --dev
lint:
stage: lint
script:
- pipenv run pylint --output-format=text --load-plugins pylint_django project/ | tee pylint.txt
- score=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' pylint.txt)
- echo "Pylint score was $score"
- ls
- pwd
- pipenv run anybadge --value=$score --file=pylint.svg pylint
artifacts:
paths:
- pylint.svg
test:
stage: test
script:
- pipenv run python manage.py …Run Code Online (Sandbox Code Playgroud) 我最近被要求做这个任务(学校):
编写一个循环生成器,它以有限迭代器为参数,并在无限循环中生成可迭代器
所以我做了 :
import itertools
def loop(l):
for eleme?????nt in itertools.cycle(l):
yield element
Run Code Online (Sandbox Code Playgroud)
我的一位同学做了:
def loop(l):
while True:
?? for element in l:
yield element
Run Code Online (Sandbox Code Playgroud)
我想知道两者之间的主要区别是什么,以及是否有一种更“pythonic”的方式来编写像这样简单的东西。
我喜欢 async await 语法,并且我经常将它与 mongoose 一起使用。
所以在我的项目中有很多:
const user = await User.findOne({
_id: req.params.id
})
Run Code Online (Sandbox Code Playgroud)
这正如预期的那样工作。但是,在 sonarqube 中,我有以下错误:
Refactor this redundant 'await' on a non-promise.
和声纳规则 i :
可以对不是 Promises 的值使用 await,但它是无用且具有误导性的。await 的目的是暂停执行,直到 Promise 的异步代码运行完成。除了 Promise 之外,没有什么可等待的。
当保证等待的值不是 Promise 时,此规则会引发问题。
不合规的代码示例
let x = 42;
await x; // Noncompliant
Run Code Online (Sandbox Code Playgroud)
合规解决方案
let x = new Promise(resolve => resolve(42));
await x;
let y = p ? 42 : new Promise(resolve => resolve(42));
await y;
Run Code Online (Sandbox Code Playgroud)
我正在使用 mongo 4.0 和 mongoose 5.3.1
由于我可以使用.then …
我的tslint.json中有以下规则:
"member-ordering": [
true,
{
"order": [
"public-before-private",
"static-before-instance",
"variables-before-functions"
]
}
],
Run Code Online (Sandbox Code Playgroud)
但是我仍然收到此警告:
Warning: member-ordering - Bad member kind: public-before-private
Run Code Online (Sandbox Code Playgroud)
Typescrypt版本是3.1.1
节点版本为10.10.0