我使用 Secrets 来通过使用 Postgres 作为数据库的 Docker 堆栈来管理用户名、密码和数据库名。我现在想使用Docker提供的健康检查功能。
docker-compose.yml
x-db-secrets: &db_secrets
- psql_user
- psql_pass
- psql_dbname
services:
db:
image: postgres:13.1
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER_FILE=/run/secrets/psql_user
- POSTGRES_DB_FILE=/run/secrets/psql_dbname
- POSTGRES_PASSWORD_FILE=/run/secrets/psql_pass
secrets: *db_secrets
healthcheck:
test: pg_isready -U myuser -d db_prod
interval: 10s
timeout: 3s
retries: 3
(... other services...)
volumes:
postgres_data:
static_content:
media_content:
secrets:
psql_user:
external: true
psql_pass:
external: true
psql_dbname:
external: true
Run Code Online (Sandbox Code Playgroud)
正如本节中可以指出的healthcheck:,我通过运行状况检查公开了数据库用户名和数据库名称。我的问题(根据答案进行一些后续行动):
想法?解决方法?
额外细节:
我基本上在Excel中寻找$ A:$ A等价的结构化表引用.
说我有这个公式:
=INDEX(tChoice,MATCH(OFFSET(tData[@[cm_sex]],-3,0),tChoice[name],0),3)
Run Code Online (Sandbox Code Playgroud)
基本上,tData是一个充满原始数据(许多列)的表,取自调查(所以每列都是调查问题,或多或少).tChoice是一个较小的表(只有几列),我基本上想要查看tChoice原始数据值并返回基于该标签的标签(对于value-label表是tChoice).
我实际上想要tData [@ [cm_sex]]自动递增,因为我在左边的单元格中应用公式(所以我循环遍历原始数据的所有列),但是我不希望列tChoice [name]更改:例如,根据原始表数据查找匹配的列.
这相当于写A:A(它会自动递增到B:B,C:C等)和$ A:$ A(不会).
结构化表引用是否有等价的美元符号?
PS:当然我可以通过增加整个事情等其他东西,而不是用tChoice [name]取代tChoice [*]代替搜索和替换范围...但是为它准备一个合适的符号会更清晰,更有效率....
我需要跟踪某些类的实例(并对这些类执行其他操作)。我希望不必在相关类中声明任何额外的代码,因此理想情况下所有内容都应该在元类中处理。
我不知道如何向这些类的每个新实例添加弱引用。例如:
class Parallelizable(type):
def __new__(cls, name, bases, attr):
meta = super().__new__(cls, name, bases, attr)
# storing the instances in this WeakSet
meta._instances = weakref.WeakSet()
return meta
@property
def instances(cls):
return [x for x in cls._instances]
class Foo(metaclass=Parallelizable)
def __init__(self, name):
super().__init__()
self.name = name
# I would like to avoid having to do that - instead have the metaclass manage it somehow
self._instances.add(self)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我似乎无法在元类方面找到一个钩子来进入__init__Foo 的......
我真的不明白 docker-compose 在环境变量文件方面的行为。
我已经为运行 2 个 Flask 应用程序的简单回显服务器设置定义了一些变量。
在.env:
FLASK_RUN_PORT=5000
WEB_1_PORT=80
WEB_2_PORT=8001
Run Code Online (Sandbox Code Playgroud)
然后在docker-compose.yml:
version: '3.8'
x-common-variables: &shared_envvars
FLASK_ENV: development
FLASK_APP: main.py
FLASK_RUN_HOST: 0.0.0.0
COMPOSE_PROJECT_NAME: DOCKER_ECHOES
x-volumes: &com_volumes
- .:/project # maps the current directory, e.g. project root that is gitted, to /proj in the container so we can live-reload
services:
web_1:
env_file: .env
build:
dockerfile: dockerfile_flask
context: .
ports:
- "${WEB_1_PORT}:${FLASK_RUN_PORT}" # flask runs on 5000 (default). docker-compose --env-file .env up loads whatever env vars specified …Run Code Online (Sandbox Code Playgroud) 在 django 模板中,我需要使用 forloop.counter0 来访问列表中的元素。例如:
{% for foo in bar %}
<p>{{data[{{forloop.counter0}}]}}</p>
{%endfor%}
Run Code Online (Sandbox Code Playgroud)
该表示法不起作用 - 我猜“无法解析其余部分:[{{forloop.....]”
那么...我如何使用变量 forloop.counter0 作为另一个变量(数据)的索引,该变量是 django 模板中的列表?
编辑:为什么我认为我需要这样做......简短的故事是我有一个内联表单集。表单集(我们称之为“折扣”)很简单 - 描述(只是向用户显示的标签)和关联的折扣百分比。用户只需输入%即可。该表单集在客户表单中使用。使用 inlineformset_factory(客户,折扣,......)。还必须在该折扣表单中设置 2 个外键(对于正在创建的 Customer 实例,以及 MetaGroup,请参见下文)。但这些都是隐藏字段,而且很容易做到。
但是,该表单集中所需的表单数量由另一个表中的实例决定(我们将其称为“MetaGroup”)。例如,元组包含诸如椅子、桌子、沙发之类的条目。我的“折扣”内联表单集为用户提供了一种在每个元组上设置折扣百分比的方法。
因此,在模板中我这样做:
...
<tbody>
<managmeent forms, error stuff here>
{% for form in formset %}
<td>{{form.field.pourcent}}</td>
Run Code Online (Sandbox Code Playgroud)
这就是我需要访问数据的 forloop [fooloop.counter0]。数据是由我用来呈现该表/片段的包含提供的......
编辑:接受的答案是狭隘问题的解决方案 - 我可能不应该这样做。对于更广泛的问题(例如,为什么我认为我需要这样做),我最终使用了此处详细介绍的内容。
django ×1
docker ×1
excel ×1
health-check ×1
metaclass ×1
python ×1
python-3.x ×1
templates ×1