相关疑难解决方法(0)

Docker:复制失败:在构建上下文中找不到文件(Dockerfile)

我想指示 DockerCOPY从我的 Ubuntu 计算机上的本地/etc/文件夹获取我的证书。

我收到错误:

复制失败:在构建上下文中找不到文件或被 .dockerignore 排除:stat etc/.auth_keys/fullchain.pem:文件不存在

我没有排除在.dockerignore

我该怎么做?

Dockerfile:

FROM nginx:1.21.3-alpine

RUN rm /etc/nginx/conf.d/default.conf
RUN mkdir /etc/nginx/ssl
COPY nginx.conf /etc/nginx/conf.d
COPY ./etc/.auth_keys/fullchain.pem /etc/nginx/ssl/
COPY ./etc/.auth_keys/privkey.pem /etc/nginx/ssl/

WORKDIR /usr/src/app
Run Code Online (Sandbox Code Playgroud)

我也尝试过没有dot--> 相同的错误

COPY /etc/.auth_keys/fullchain.pem /etc/nginx/ssl/
COPY /etc/.auth_keys/privkey.pem /etc/nginx/ssl/
Run Code Online (Sandbox Code Playgroud)

通过将文件夹放在.auth_keysDockerfile 旁边 --> 可以,但不理想

COPY /.auth_keys/fullchain.pem /etc/nginx/ssl/
COPY /.auth_keys/privkey.pem /etc/nginx/ssl/
Run Code Online (Sandbox Code Playgroud)

ubuntu docker

47
推荐指数
3
解决办法
16万
查看次数

Docker和符号链接

我有一个这样的回购设置:

/config
   config.json
/worker-a
   Dockerfile
   <symlink to config.json>
   /code
/worker-b
   Dockerfile
   <symlink to config.json>
   /code
Run Code Online (Sandbox Code Playgroud)

但是,构建映像失败,因为Docker无法处理符号链接.我应该提到我的项目比这复杂得多,所以重组目录不是一个很好的选择.我该如何处理这种情况?

symlink docker

31
推荐指数
3
解决办法
4万
查看次数

docker-compose,未能解决:rpc 错误:代码 = 未知 desc = 无法计算缓存密钥:“/app/package.json”未找到:未找到

我的路径有问题docker-compose,当我尝试仅使用 构建项目时docker build,它效果很好,但我不能使用docker build,我必须使用docker-compose。当我使用docker-compose它时,它在步骤 3/5=> ERROR [3/5] COPY /app/package.json . 和步骤 5/5 处返回 2 个错误=> ERROR [5/5] COPY /app .

PS C:\Users\mamba\Desktop\project-practice> docker-compose -f docker/docker-compose.yml up -d
[+] Building 1.4s (9/9) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                          0.1s 
 => => transferring dockerfile: 31B                                                                                                                           0.0s 
 => [internal] load .dockerignore                                                                                                                             0.1s 
 => => transferring context: 34B                                                                                                                              0.0s 
 => [internal] load metadata for docker.io/library/node:latest                                                                                                1.0s 
 => [1/5] FROM …
Run Code Online (Sandbox Code Playgroud)

frontend backend docker reactjs docker-compose

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

复制失败:构建上下文 docker compose 之外的禁止路径

这是项目结构

Project
 /deployment
   /Dockerfile
   /docker-compose.yml
 /services
   /ui
     /widget
Run Code Online (Sandbox Code Playgroud)

这是泊坞窗文件

FROM node:14

WORKDIR /app

USER root

# create new user (only root can do this) and assign owenership to newly created user
RUN echo "$(date '+%Y-%m-%d %H:%M:%S'): ======> Setup Appusr" \
    && groupadd -g 1001 appusr \
    && useradd -r -u 1001 -g appusr appusr \
    && mkdir /home/appusr/ \
    && chown -R appusr:appusr /home/appusr/\
    && chown -R appusr:appusr /app

# switch to new created user so that appuser will be …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

10
推荐指数
2
解决办法
4万
查看次数

如何将本地机器的 SSH 密钥传递给 docker 容器?

我正在尝试从 Dockerfile 构建一个 docker 镜像,需要采取的步骤之一是安装一个只能通过私有 Gitlab 存储库使用的依赖项。这意味着容器需要访问 SSH 密钥才能进行克隆。我知道这不是最安全的方法,但是这只是一个中间容器,一旦运行应用程序所需的所有组件都到位,它将被删除。

问题是,无论我尝试什么,我都无法在 docker 中使用 ssh 代理来建立连接。我得到:

npm ERR! Host key verification failed.
npm ERR! fatal: Could not read from remote repository.
npm ERR! 
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
Run Code Online (Sandbox Code Playgroud)

如果我尝试简单地克隆存储库而不运行npm install. 这是我使用的 Dockerfile:

FROM risingstack/alpine:3.4-v6.9.4-4.2.0


RUN apk update

RUN apk add openssh

ARG SSH_KEY

# Authorize SSH Host
RUN mkdir -p /root/.ssh && \
    chmod 700 /root/.ssh && \ …
Run Code Online (Sandbox Code Playgroud)

git ssh docker dockerfile docker-container

8
推荐指数
2
解决办法
2万
查看次数

什么是上下文:。在 docker-compose 中?

我正在尝试学习 docker 并创建了我的第一个 docker compose 文件。基本上我正在尝试创建一个 Django Web 微服务并使用 docker compose 文件来管理它。这是我的 docker-compose.yml 代码:

version: "3"

services:
  app:
    build:
      context: .
    ports:
      - "8000:8000"
    volumes:
      - ./app:/app
    command: >
      sh -c "py manage.py runserver 0.0.0.0:8000"
Run Code Online (Sandbox Code Playgroud)

我不明白的用法context: .有人可以解释一下吗

docker docker-compose

8
推荐指数
2
解决办法
5468
查看次数

如何组织多个 Dockerfile、docker-compose.yaml 和 .dockerignore

在查看了如何命名 Dockerfiles 的答案后,我仍然有很多问题。

就我而言,我至少需要两个Dockerfiles, adocker-compose.yaml和 a .dockerignore。听起来像是使用诸如<purpose>.Dockerfile或 之类的扩展Dockerfile.<purpose>,其缺点是失去在 hub.docker.com 上使用 autobuilder 的功能。

因此其他人建议您将每个文件保存Dockerfile在一个目录中并从那里构建。

所以也许是这样的:

dockerfiles/
--python_consumer/
-----Dockerfile
--python_producer/
-----Dockerfile
--docker-compose.yaml
--.dockerignore
Run Code Online (Sandbox Code Playgroud)

在这种情况下,.dockerignore 是否可以在全局范围内适用于所有 dockerfile?以这种方式构建有什么大的缺点吗?

我的示例 docker-compose.yaml 没有单独的目录和一个组合的消费者/生产图像作为上下文。

version: '3.8'
services:
  standalone:
    hostname: standalone
    container_name: standalone
    image: apachepulsar/pulsar:2.8.1
    ports:
      - 8080:8080 # exposed would be a better practice
      - 6650:6650 # exposed would be a better practice
    command: bin/pulsar standalone
    healthcheck:
      test: ["CMD", "nc", "-vz", "localhost", "6650"]
      interval: 20s …
Run Code Online (Sandbox Code Playgroud)

naming-conventions docker dockerfile docker-compose

7
推荐指数
1
解决办法
2400
查看次数

我们可以使用 .tar 或 zip 存档构建 docker 镜像吗

我们可以使用 tarball 或 zip 存档构建一个 docker 镜像,其中包含 dockerfile 吗?我需要使用 docker api 从档案构建图像。

有没有任何参考或资源,我搜索了 3o 分钟但找不到任何东西。

请帮帮我!提前致谢!

docker docker-image docker-build docker-api

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

访问Dockerfile中的上下文外部

在我的Maven项目中,我具有以下结构:

docker/
   docker-compose.yml
   A/
     Dockerfile
   B/
     Dockerfile
src/
target/
   foo.war
Run Code Online (Sandbox Code Playgroud)

在A的Dockerfile中,我需要使用/target以下命令访问文件夹中的war :

COPY ../../target/foo.war /usr/local/tomcat/webapps/foo.war
Run Code Online (Sandbox Code Playgroud)

当我运行docker-compose uptt给我错误

生成失败:COPY失败:生成上下文之外的禁止路径:../../target/foo.war

docker-compose.yml

version: '3.6'
services:
  fooA:
    build: ./docker/A
    ports:
      - "8080:8080"
    depends_on:
      - fooB

  fooB:
    build: ./docker/fooB
    ports:
      - "5433:5433"
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何解决吗?我不想在每个项目构建后手动复制war文件。

java maven docker

6
推荐指数
2
解决办法
5247
查看次数

Dockerfile - 如何从本地文件夹复制文件?

以下是Dockerfile

FROM golang:1.14.10
MAINTAINER xyz

COPY ~/go/bin/product-api /go/bin/product-api

COPY ~/go/bin/swagger /go/bin/swagger

ENTRYPOINT ["/go/bin/product-api"]
Run Code Online (Sandbox Code Playgroud)

docker build -t cloud-native-product-api:1.0.0 .,给出了错误:

Step 3/5 : COPY ~/go/bin/product-api /go/bin/product-api
COPY failed: stat /var/lib/docker/tmp/docker-builder398080099/~/go/bin/product-api: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我认为图像构建过程将/var/lib/docker/tmp/docker-builder398080099作为工作区并从该路径引用。

如何将文件从本地机器的特定文件夹复制到 Docker 镜像中?

docker dockerfile docker-volume

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