标签: dockerfile

COPY dockerfile 中没有这样的文件或目录

我制作了以下 dockerfile 来包含我的 node js 应用程序,问题是构建 dockerfile 时出现错误:

Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM node:10
 ---> 0d5ae56139bd
Step 2/7 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 5bfc0405d8fa
Step 3/7 : COPY package.json ./
COPY failed: stat /var/lib/docker/tmp/docker- 
builder803334317/package.json: no such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我的 dockerfile:

FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)

我执行了命令:sudo docker build - < Dockerfile

进入我的根项目文件夹。

我的项目文件夹很简单,像这样:

-Project
 -app.js …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

0
推荐指数
1
解决办法
4415
查看次数

使用备份 dump.rdb 启动 redis 容器

我正在尝试使用 docker-compose 部署一个简单的节点 - redis 架构。

我有一个带有 redis 数据备份的dump.rdb,我想启动一个加载了该数据的容器。

我的 docker-compose.yml 看起来像这样:

version: '3'
  services:
      redis:
        image: redis:alpine
        container_name: "redis"
        ports:
            - "6379:6379"
  server:
    build: ./src
    image: hubName:imageName
    container_name: containerName
    links: 
      - redis
    depends_on:
      - "redis"
    ports:
      - "8443:8443"
    restart: always
Run Code Online (Sandbox Code Playgroud)

我应该包括卷吗?如果我想要持久化 redis 数据怎么办?

谢谢 :)

redis docker dockerfile docker-compose

0
推荐指数
1
解决办法
4772
查看次数

通过 docker 文件在生产中设置 NODE_ENV 变量

我正在尝试在 nodejs 中使用下面的代码

if (process.env.NODE_ENV !== 'production')
Run Code Online (Sandbox Code Playgroud)

我试图从 docker 文件中设置 NODE_ENV 变量,如下所示。

FROM collinestes/docker-node-oracle:10-slim
ENV NODE_ENV=production
EXPOSE  8085
CMD ["npm","start"]
Run Code Online (Sandbox Code Playgroud)

如果我运行我的 docker 镜像,它不会启动并抛出错误。如果我删除 NODE_ENV 一切正常。这是从 dockerfile 设置 NODE_ENV 的正确方法吗?

node.js docker dockerfile

0
推荐指数
1
解决办法
8916
查看次数

PHP 无法解析主机名

我正在使用 Slim 框架 (PHP) 为我的第一个项目学习 docker。我创建了一个 dockerfile 来构建一个包含所有源代码的图像。当我使用 run 命令运行图像时,它会显示我

<b>Warning</b>:  Unknown: php_network_getaddresses: getaddrinfo failed: Name does not resolve in <b>Unknown</b> on line <b>0</b><br />
[Sat Jun 15 09:41:14 2019] Failed to listen on  127.0.0.1:8080 (reason: php_network_getaddresses: getaddrinfo failed: Name does not resolve)
Run Code Online (Sandbox Code Playgroud)

Dockerfile 看起来像:

FROM php:7-alpine
COPY . /var/www
WORKDIR /var/www
CMD [ "php", "-S 127.0.0.1:8080 -t public" ]
Run Code Online (Sandbox Code Playgroud)

Docker 运行命令是:

sudo docker run -it --rm --network="host" --expose 8080 --name cm2 collection_manager_1
Run Code Online (Sandbox Code Playgroud)

不知道我该如何解决这个问题。有人能帮我吗?

docker dockerfile

0
推荐指数
1
解决办法
435
查看次数

在 docker 容器中运行 RabbitMQ

我对 RabbitMQ 还很陌生,我正在开发一个 POC 来运行在 docker 容器中使用 RabbitMQ 的 C# 解决方案。

我设法编写了 docker-compose.yml、dockerfile 并运行了 RabbitMQ。但是,我的解决方案无法访问 RabbitMQ 主机。我想我可能缺少一些配置,但我不知道是什么。

docker-compose.yml

version: '3.4'

services:
  rabbit-sender:
    image: rabbit-sender
    container_name: rabbit-sender
    build: 
        context: ../SenderRabitMQ
        dockerfile: debug.Dockerfile
    env_file: common.env
    networks:
      - rabbitPoc
    expose:
      - "80"

  rabbit-receiver:
    image: rabbit-receiver
    container_name: rabbit-receiver
    build: 
      context: ../ReceiveRabitMQ
      dockerfile: debug.Dockerfile
    env_file: common.env
    networks:
      - rabbitPoc
    expose:
      - "80"

  rabbitmq:
    image: rabbitmq:3.7.15
    hostname: rabbitmq
    build: 
      context: rabbit
      dockerfile: debug.Dockerfile
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - "./enabled_plugins:/etc/rabbitmq/enabled_plugins"
Run Code Online (Sandbox Code Playgroud)

调试.Dockerfile

Install RabbitMQ
FROM ubuntu:14.04.1 …
Run Code Online (Sandbox Code Playgroud)

c# rabbitmq docker dockerfile docker-compose

0
推荐指数
1
解决办法
7377
查看次数

在 Asp.Net Core 容器中更改时区

我在具有以下基本映像的容器中运行我的应用程序:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base

当我发布应用程序时,容器时区是Greenwich Mean Time,因此我在数据库中的 NLog 条目关闭了 6 小时。

我可以通过进入容器并运行来更改时区, dpkg-configure tzdata并且在重新启动容器后,我的日志条目变得正常。但是,我想知道这是否可以通过 Dockerfile 或运行标志来完成?

nlog docker dockerfile asp.net-core tzdata

0
推荐指数
1
解决办法
1853
查看次数

docker build 因“COPY failed: no such file or directory”错误而失败

我正在设置 travis-ci 以在它们提交到 github 时构建和推送 docker 图像。
但是即使 api 和 nginx 图像成功,客户端 docker 图像也不会构建并推送到 docker hub。

源代码在这里:https :
//github.com/jpskgc/article

  • 客户:反应
  • api:golang
  • ci:travis-ci

这是 .travis.yml

language: generic
sudo: required
services:
  - docker

before_install:
  - docker build -t jpskgc/react-test -f ./client/Dockerfile.dev ./client

script:
  - docker run -e CI=true jpskgc/react-test npm test

after_success:
  - docker build -t jpskgc/multi-client ./client
  - docker build -t jpskgc/multi-nginx ./nginx
  - docker build -t jpskgc/multi-api ./api
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
  - docker …
Run Code Online (Sandbox Code Playgroud)

continuous-integration travis-ci docker reactjs dockerfile

0
推荐指数
1
解决办法
3794
查看次数

如何使用 AWS 于 2020 年 1 月推出的 efsVolumeConfiguration 任务定义参数 Beta 在 ECS 集群上挂载 EFS

AWS 在此处的文档中提供了这一点

{
    "containerDefinitions": [
        {
            "name": "container-using-efs",
            "image": "amazonlinux:2",
            "entryPoint": [
                "sh",
                "-c"
            ],
        "command": [
            "ls -la /mount/efs"
        ],
            "mountPoints": [
                {
                    "sourceVolume": "myEfsVolume",
                    "containerPath": "/mount/efs",
                    "readOnly": true
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEfsVolume",
            "efsVolumeConfiguration": {
                "fileSystemId": "fs-1234",
                "rootDirectory": "/path/to/my/data"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个 EFS 文件系统,分配给它的安全组允许入站 NFS,并且 EFS 使用该安全组以及我的 ECS 集群使用的子网和 VPC

问题

当我使用 AWS 管理控制台在我的任务定义中创建挂载点时,我必须输入containerPathelsemountPoints未反映在我的 JSON 中

1)我应该containerPathmountPoints什么之下?

2)我应该指定一个rootDirectoryunder …

amazon-web-services amazon-ecs docker dockerfile docker-compose

0
推荐指数
1
解决办法
2000
查看次数

单个 Docker 容器中的 Flask 和 React 应用程序

美好的一天,

我知道这是不好的做法,我应该每个容器有一个应用程序,但是有没有办法让我在同一个容器中同时运行两个服务,我将如何为它编写 Dockerfile?

我当前用于 Flask(后端)应用程序的 Dockerfile:

FROM python:3.6.9-slim-buster

WORKDIR /app/flask_backend

ENV PYTHONPATH "${PYTHONPATH}:/app"

COPY ./flask_backend ./

COPY requirements.txt .
RUN pip install -r requirements.txt

CMD python3 app/webapp/app.py
Run Code Online (Sandbox Code Playgroud)

我的 React(前端)Dockerfile:

FROM node:12.18.0-alpine as build

WORKDIR /app/react_frontend

ENV PATH /app/node_modules/.bin:$PATH
ENV NODE_OPTIONS="--max-old-space-size=8192"

COPY ./react_frontend/package.json ./
COPY ./react_frontend/package-lock.json ./

RUN npm ci
RUN npm install react-scripts@3.4.1 -g
RUN npm install serve -g

COPY ./react_frontend ./

CMD ["serve", "-s", "build", "-l", "3000"]
Run Code Online (Sandbox Code Playgroud)

我尝试在同一个 Docker 容器中启动两个应用程序是为了合并两个 Dockerfile,但生成的容器没有来自第一个 Dockerfile 的数据,我不确定如何继续。

我合并的 Dockerfile:

FROM python:3.6.9-slim-buster

WORKDIR /app/flask_backend …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

0
推荐指数
1
解决办法
2662
查看次数

两个docker容器无法通信

我有两个码头集装箱。一个容器是数据库,另一个是 Web 应用程序。Web 应用程序通过此链接 http://localhost:7200 调用数据库。但是,Web 应用程序 docker 容器无法到达数据库容器。

我试过这个 docker-compose.yml,但不起作用:

version: '3'
services:
  web:
    # will build ./docker/web/Dockerfile
    build: 
       context: .
       dockerfile: ./docker/web/Dockerfile
    links:
      - graph-db
    depends_on:
     - graph-db
    ports:
     - "8080:8080"
    environment:
      - WAIT_HOSTS=graph-db:7200
    networks: 
      - backend

  graph-db:
    # will build ./docker/graph-db/Dockerfile
    build:
        ./docker/graph-db
    hostname: graph-db
    ports:
      - "7200:7200"

networks:
  backend:
    driver: "bridge"
Run Code Online (Sandbox Code Playgroud)

所以我有两个容器: Web 应用程序:http://localhost:8080/reasoner,这个容器调用位于不同容器中的 http://localhost:7200 中的数据库。但是,Web 容器无法访问数据库容器。

解决方案

version: '3'
services:
  web:
    # will build ./docker/web/Dockerfile
    build: 
       context: .
       dockerfile: ./docker/web/Dockerfile
    depends_on:
     - graph-db
    ports:
     - …
Run Code Online (Sandbox Code Playgroud)

docker microservices dockerfile docker-compose

0
推荐指数
1
解决办法
1227
查看次数