从 Docker 版本20.10(https://github.com/moby/moby/pull/40007)开始,有一个新的特殊字符串host-gateway,可以在--add-host运行标志中使用,以允许从 docker 容器内部直接连接到本地计算机在基于 Linux 的系统上。这非常好。
--add-host=host.docker.internal:host-gateway但是Compose 文件中的等价物是什么?
例如在:
$ docker run \
--rm \
--name postgres \
-p "5433:5432" \
-e POSTGRES_PASSWORD=**** \
--add-host=host.docker.internal:host-gateway \
-d postgres:14.1-bullseye
Run Code Online (Sandbox Code Playgroud)
相同的标志如何--add-host适合这个 Docker Compose 等效模板:
version: '3.9'
services:
postgres:
image: postgres:14.1-bullseye
environment:
POSTGRES_PASSWORD: ****
ports:
- "5433:5432"
Run Code Online (Sandbox Code Playgroud)
肯定不是:network_mode: host在服务级别(参见#Doc)。
在pgAdmin4(版本 5.5)中,当SELECT * FROM tablename;执行查询时,可以在底部面板上名为“数据输出”的选项卡下看到指定表的选定列的结果记录。
如果该表的列包含非常长的数据字符串,例如,当编码为 JSON 对象或任何PostGIS复杂几何图形时,它们的宽度可能会非常大,这会对用户体验产生负面影响。因为当人们尝试抓住并移动微小的水平滑块时,转到某些列就变成了子像素游戏(例如,移动滑块半个像素可以将几列移动超过屏幕宽度的 2 倍......)。
我错过了设置中的某些内容吗?
有没有办法解决这个问题,例如通过设置列的最大宽度值?因为当使用开箱即用的 pgAdmin 时,它们是完全扩展的......
我记得早期版本(4.x)中并非如此。
我正在使用最新的dockerized版本(5.5),如 pgAdmin4文档中所述,可在此处获取:https ://hub.docker.com/r/dpage/pgadmin4/
操作系统:Ubuntu 18.04
网页浏览器:Firefox 89.0.2(64 位)
我试图通过终端在python 中安装pip,但在终端中有这个警告。 $ python get-pip.py
Python3.8
MacOS Catalina
请帮助:(。我一直试图寻找答案几天
WARNING: The scripts pip, pip3 and pip3.8 are installed in '/Library/Frameworks/Python.framework/Versions/3.8/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Run Code Online (Sandbox Code Playgroud) 我有一个可能相当简单的问题,但我无法找到带有很好解释的答案:
在/应用程序中开发的 RESTful API 上下文中的路由和端点之间有什么区别(如果有的话)(但这些概念可能更广泛?!...)?
(它是否以某种方式与 URL 相关?)Node.jsExpress
例如,在这篇文章中:https : //medium.com/@purposenigeria/build-a-restful-api-with-node-js-and-express-js-d7e59c7a3dfb我们可以读到:
我们导入了在课程开始时安装的 express,app.get 向服务器发出 get 请求,并提供路由/端点作为第一个参数,端点旨在返回数据库中的所有待办事项。
这些概念可以互换使用,这让我感到困惑。
(请注意,我是 REST API、nodejs 和 express 的 100% 初学者,但我会尽力学习)。
编辑:
按时间顺序排列的前两个答案让我更加困惑,因为它们完全是对立的。
我需要将以下代码升级为基于psycopg版本 3 的等效代码:
import psycopg2
from sqlalchemy import create_engine
engine = create_engine('postgresql+psycopg2://', creator=connector)
Run Code Online (Sandbox Code Playgroud)
这个 psycopg2 URL 很有魅力,但是:
import psycopg # v3.1
from sqlalchemy import create_engine
engine = create_engine('postgresql+psycopg://', creator=connector)
Run Code Online (Sandbox Code Playgroud)
(我也尝试过“psycopg3”这个词但没有成功)
返回:
Traceback (most recent call last):
File "/tmp/ipykernel_1032556/253047102.py", line 1, in <cell line: 1>
engine = create_engine('postgresql+psycopg://', creator=connector)
File "<string>", line 2, in create_engine
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/deprecations.py", line 309, in warned
return fn(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/create.py", line 534, in create_engine
entrypoint = u._get_entrypoint()
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/url.py", line 661, in _get_entrypoint …Run Code Online (Sandbox Code Playgroud) 尝试从Ubuntu 18.04 上的github导入最新编译的最新可用OpenCV版本后,出现分段错误。
这是我尝试cv2在Python 3 中导入时收到的错误消息:
$ python3
Python 3.6.8 (default, Aug 20 2019, 17:12:48)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
python3: Relink `/lib/x86_64-linux-gnu/libsystemd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'
python3: Relink `/lib/x86_64-linux-gnu/libudev.so.1' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
我的 Ubuntu; 5.0.0-29-generic x86_64 GNU/Linux
从我克隆 OpenCV 的地方;https://github.com/opencv/opencv
如果您曾经在https://hub.docker.com上仔细浏览过 docker 镜像,您可能曾经剖析过在某个标签内组成感兴趣的镜像的所有命令。
很好,但是当您单击命令的特定行时,您可能会看到这种“翻译”命令:
我在这里可能是错的,因为我不是 Docker 专家,但这似乎是SHA-256摘要,它指的是...... Hub 内的其他内容。
我的问题是;知道 SHA 值 ( ) 后,如何找到它到底指的是什么3a7bff4e139bcacc5831fd70a035c130a91b5da001dd91c08b2acd635c7064e8?
当我wget从 GitHub 获取文件时,它会显示一个漂亮的单行进度条,如下所示:
wget -N http://db.sqlite.zip
db.sqlite.zip 28%[====> ] 68.79M 370KB/s eta 5m 53s
Run Code Online (Sandbox Code Playgroud)
但是,如果我 在启动容器时以完全相同的方式wget运行命令,作为 bash 脚本来获取一些数据,它会打印数千行,显然对于下载的每 50K 位:
app_1 | 0K .......... .......... .......... .......... 0% 212K 19m12s
app_1 | 50K .......... .......... .......... .......... 0% 426K 14m22s
app_1 | 100K .......... .......... .......... .......... 0% 38.4M 9m37s
app_1 | 150K .......... .......... .......... .......... 0% 430K 9m35s
app_1 | 200K .......... .......... .......... .......... 0% 33.9M 7m41s
...
Run Code Online (Sandbox Code Playgroud)
+很多...很多这样的行(它实际上填充了标准输出缓冲区,但我不想)。
我怎样才能获得与主机上相同的行为,例如显示一行进度条?当然如果可以的话。否则我就简单地-q结束了。
我使用以下图像https://hub.docker.com/r/dpage/pgadmin4/在 Ubuntu 18-04 上设置 pgAdmin4。
我已经安装了一个包含文件的卷pgpass(该文件也chmod供pgadmin容器内的用户使用),如您在我的 Compose 文件中看到的那样:
version: '3.8'
services:
pgadmin4:
image: dpage/pgadmin4
container_name: pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=me@localhost
- PGADMIN_DEFAULT_PASSWORD=******************
- PGADMIN_LISTEN_PORT=5050
- PGADMIN_SERVER_JSON_FILE=servers.json
volumes:
- ./config/servers.json:/pgadmin4/servers.json # <-- this file is well taken into account
- ./config/pgpass:/pgpass # <- there is no way to find this one on the other hand
ports:
- "5000:5000"
restart: unless-stopped
network_mode: host
Run Code Online (Sandbox Code Playgroud)
但是,当我右键单击服务器并检查其高级属性时,pgadmin 网页似乎无法识别它:
如果我/pgpass在顶部绿色框中手动指定图像中只有斜杠的位置,则会显示:
但是如果我登录到容器,我实际上可以列出该文件:
/ $ ls -larth /pgpass
-rw------- …Run Code Online (Sandbox Code Playgroud) import numpy as np
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
fmri = sns.load_dataset("fmri")
fmri.sort_values('timepoint',inplace=True)
ax = sns.lineplot(x="timepoint", y="signal", data=fmri)
arr = np.ones(len(fmri))
arr[:300] = 0
arr[600:] = 2
fmri['background'] = arr
ax = sns.lineplot(x="timepoint", y="signal", hue="event", data=fmri)
Run Code Online (Sandbox Code Playgroud)