小编Mar*_*ell的帖子

在 docker 中处理服务配置的最佳实践

我想使用应用程序创建者提供的 docker-compose 文件在生产环境(单主机)中部署 docker 应用程序。基于 docker 的解决方案被用作整体二进制安装程序的直接替代品。

该应用程序附带默认配置,但期望管理员希望应用适度的配置更改。

似乎有几种方法可以将自定义配置应用于文件中定义的服务docker-compose.yml,但我不确定哪种方法被认为是最佳实践。我目前正在考虑的两个是:

  • 将配置烘焙到新映像中。在这里,我将为 docker-compose 文件中定义的每个服务添加一个构建步骤,并创建一个最小的构建步骤Dockerfile,用于COPY将映像中的现有配置文件替换为我的自定义配置文件。使用sedand echoinCMD语句也可用于更改内联配置,而无需批量替换文件。

  • 使用绑定安装并将配置存储在主机上。在这种情况下,我会将所有自定义配置文件存储在主机上的一个目录中,并在volumesdocker-compose 文件中的每个服务的参数中定义绑定安装。

第一个选项对我来说似乎是最干净的,因为应用程序是完全独立的,但是如果我想进行任何进一步的配置更改,我需要重建图像。第二个选项似乎是最简单的,因为我可以即时进行配置更改(根据容器中的需要重新启动服务)。

是否有推荐的方法将自定义配置注入 Docker 服务?

docker docker-compose

5
推荐指数
1
解决办法
1567
查看次数

具有两个可能值的IF块的Pythonic处理

如果我有一个函数或方法接受一个只能是两个值之一的参数,那么在else子句中明确地陈述两个已知条件或抽象一个是否更加pythonic?例如:

选项1:

def main(group_name):
    if group_name == 'request':
        do_something()
    else:
        do_something_else()
Run Code Online (Sandbox Code Playgroud)

或选项2:

def main(group_name):
    if group_name == 'request':
        do_something()
    elif group_name == 'response':
        do_something_else()
    else:
        raise Exception
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
70
查看次数

使用嵌套for循环缓慢执行

我有一个相当大的文本文件(~16k行)我循环并为每一行,检查客户端IP:端口,服务器IP:端口和关键字是否存在于行中,使用两个for循环和嵌套if x in line语句来检查如果该行包含我正在寻找的信息.

在我确定了包含我要查找的值的行之后,我更新了一个sqlite数据库.最初,这需要相当长的时间来执行,因为我没有在手动事务中包装的SQL UPDATE语句.进行此更改后,执行时间显着改善,但我仍然发现下面的代码需要几分钟才能完成,我觉得我的可怕循环结构是原因.

如果有人有任何性能提示来帮助加快下面的代码,我将非常感激:

c.execute("SELECT client_tuple, origin_tuple FROM connections")
# returns ~ 8k rows each with two items, clientIP:port and serverIP:port
tuples = c.fetchall()

with open('connection_details.txt', 'r') as f:
    c.execute('BEGIN TRANSACTION')
    # for each line in ~16k lines
    for line in f:
        # for each row returned from sql query
        for tuple in tuples:
            # if the client tuple (IP:Port) is in the line
            if tuple[0] in line:
                # if the origin tuple (IP:Port) is …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

1
推荐指数
2
解决办法
537
查看次数

标签 统计

python ×2

docker ×1

docker-compose ×1

python-3.x ×1