小编And*_*ler的帖子

如何使用Docker的COPY/ADD指令将单个文件复制到图像

我试图将构建上下文的根目录中的单个文件复制到docker镜像中新创建的目录中.

我使用的Dockerfile如下:

FROM debian:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY test.txt /usr/src/app
Run Code Online (Sandbox Code Playgroud)

test.txt文件是一个简单的ASCII文本文件,如下所示:

$ cat test.txt 
This is a test
Run Code Online (Sandbox Code Playgroud)

但是,当我构建此图像时,我得到一个图像,指出目标路径不是目录.

$ docker build .
Sending build context to Docker daemon 4.608 kB
Sending build context to Docker daemon 
Step 0 : FROM debian:latest
 ---> 9a61b6b1315e
Step 1 : RUN mkdir -p /usr/src/app
 ---> Using cache
 ---> 86bd44a8776e
Step 2 : WORKDIR /usr/src/app
 ---> Using cache
 ---> ed6771adc681
Step 3 : ADD test.txt /usr/src/app
stat /var/lib/docker/devicemapper/mnt/ee5b9b7029f2adf27d332cbb0d98d6ad9927629a7569fd2d9574cb767b23547b/rootfs/usr/src/app/test.txt: not a directory …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

22
推荐指数
1
解决办法
3万
查看次数

TypeScript Mocha 测试的 Vscode 断点

我已经开始使用 TypeScript 开发 Node/ExpreeJS 项目。\n我应该注意,我没有直接运行节点。我正在 Docker 中运行节点,但我没有看到任何原因表明这会成为问题。

\n\n

我使用 vscode 作为编辑器,并尝试为 Mocha 测试配置调试启动配置。

\n\n

我的启动配置是

\n\n
{\n    "type": "node",\n    "request": "launch",\n    "name": "SK - Mocha Tests",\n    "cwd": "${workspaceRoot}",\n    "runtimeExecutable": "make",\n    "runtimeArgs": [\n        "test-brk"\n    ],\n    "port": 9321,\n    "console": "integratedTerminal",\n    "internalConsoleOptions": "neverOpen",\n    "protocol": "inspector",\n    "sourceMaps": true,\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

make test-brk命令只是映射到在容器内docker exec执行的命令。npm run test-brk

\n\n

我的 package.json 包含此脚本定义test-brk

\n\n

"test-brk": "mocha --require source-map-support/register --require node_modules/ts-node/register --inspect-brk=0.0.0.0:9222 --debug-brk --exit test/**/*.spec.ts"

\n\n

从 vscode运行SK - Mocha Tests调试任务会启动 Mocha …

mocha.js node.js typescript visual-studio-code ts-node

6
推荐指数
1
解决办法
1363
查看次数

docker swarm 容器连接到主机端口

我有一个 swarm 集群,我在其中创建了一个全局服务以在集群中的所有 docker 主机上运行。

目标是让这个服务的每个容器实例连接到一个监听 docker 主机的端口。

有关更多信息,我正在遵循此Docker Daemon Metrics指南,以在所有主机上公开新的 docker 指标 API,然后将该主机端口代理到覆盖网络中,以便 Prometheus 可以从所有 swarm 主机中获取指标。

我已经阅读了几个docker github 问题#8395 # 32101 #32277 #1143 - 从这里我的理解与Docker Daemon Metrics 中概述的相同。为了从 swarm 容器内连接到主机,我应该使用默认为 172.18.0.1 的 docker-gwbridge 网络。

我的 swarm 中的每个容器都有一个用于 docker-gwbridge 网络的网络接口:

326: eth0@if327: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue
    link/ether 02:42:0a:ff:00:06 brd ff:ff:ff:ff:ff:ff
    inet 10.255.0.6/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet 10.255.0.5/32 scope global eth0
       valid_lft forever preferred_lft forever 
333: eth1@if334: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

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