标签: docker-compose

在多容器 docker-compose 设置中,我应该添加什么作为 api 地址?

我有一个简单的 2 个容器 docker-compose 设置。一个前端(Angular)和一个后端(nestjs/express)。

这是我的 docker-compose(开发)

version: "3.3"
services:
  db:
    image: 'postgres:10-alpine'
    container_name: 'postgresnew'
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=4321
      - POSTGRES_DB=bleh
    volumes:
      - pgdata:/var/lib/postgresql/data
  frontend:
    build: ./frontendapp
    ports:
      - 4001:4200
    volumes: 
      - ./frontendapp:/app
      - /app/node_modules/
  backend: 
    build: ./backendapp
    ports: 
      - 4000:8080
    volumes:
      - ./backendapp:/app
      - /app/node_modules/
    env_file:
      - .env
volumes: 
  pgdata:
Run Code Online (Sandbox Code Playgroud)

现在,暴露了正确的端口后,我的前端可以使用 localhost:4000 地址轻松访问后端,如我的前端环境中所见

const x = 'http://localhost:4000';

export const environment = {
  production: false,
  API_USERSERVICE: x + "/api/user",
  API_PROJECTSERVICE: x + "/api/project",
  API_TASKSERVICE: x + "/api/task",
  API_PGROUPSERVICE: x …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose angular

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

将多个 .yml 文件传递​​给 docker-compose

Docker 菜鸟在这里。我的 docker 文件夹中有两个文件 docker-compose.build.yml 和 docker-compose.up.yml 。以下是两个文件的内容..

docker-compose.build.yml

version: "3"
services:

    base:
        build:
          context: ../
          dockerfile: ./docker/Dockerfile.base
          args:
            DEBUG: "true"
        image: ottertune-base
        labels:
          NAME: "ottertune-base"

    web:
        build:
          context: ../
          dockerfile: ./docker/Dockerfile.web
        image: ottertune-web
        depends_on:
          - base
        labels:
          NAME: "ottertune-web"
        volumes:
          - ../server:/app

    driver:
        build:
          context: ../
          dockerfile: ./docker/Dockerfile.driver
        image: ottertune-driver
        depends_on:
          - base
        labels:
          NAME: "ottertune-driver"
Run Code Online (Sandbox Code Playgroud)

docker-compose.up.yml

version: "3"
services:

    web:
        image: ottertune-web
        container_name: web
        expose:
          - "8000"
        ports:
          - "8000:8000"
        links:
          - backend
          - rabbitmq
        depends_on:
          - backend …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

为什么我的容器没有加入 docker-compose 中的现有网络?

我有一个简单的应用程序,我试图连接到现有的现有网络,但是当我这样做时,docker-compose up它只是为自己创建一个新网络,而无需加入现有网络。我尝试加入的现有网络用于 traefik,称为代理。我在 traefik 后面运行的所有其他服务都运行良好。我必须手动将 mynewapp 添加到代理网络才能使其工作。我所有的其他服务撰写文件也在各个文件夹中解耦,所以我不认为是这样。

我尝试将外部和内部值定义为 true 和 false,但它仍然创建了自己的网络。如果我定义了一个默认网络和代理网络,那么它只会创建两个名为 mynodeapp_default 和 mynodeapp_proxy 的新网络。如果我运行docker network inspect proxy,我不会在其中看到 mynewapp(但我会看到所有其他正在运行的服务)。

我的输出docker network list

62eba8d7e127        proxy                 bridge              local
a50cdb97b743        testapp_proxy         bridge              local
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

version: '3'

services: 
  mynodeapp:
    container_name: mynodeapp
    build: .
    volumes:
      - ./:/app/
    networks: 
      - proxy
    labels: 
      - traefik.enable=true
      - traefik.network=proxy

networks: 
  proxy:
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

sh 文件上的 docker-compose up 权限被拒绝

我有以下 docker-compose.yml 文件:

version: "3" services:\   local_db:
    build:
      context: mssql-data
      dockerfile: Dockerfile
    ports:
      - "1433:1433"
    volumes:
      - ~/Documents/rfg/temp
    environment:
      SA_PASSWORD: "D0ckerDev"
      ACCEPT_EULA: "Y"
Run Code Online (Sandbox Code Playgroud)

当我运行 docker-compose up 时,出现以下错误:

local_db_1  | /scripts/entrypoint.sh: line 5: /scripts/seed-data.sh: Permission denied
docker_local_db_1 exited with code 126
Run Code Online (Sandbox Code Playgroud)

入口点是:

#start SQL Server in the background
/opt/mssql/bin/sqlservr &

# start the seed data script 
/scripts/seed-data.sh
Run Code Online (Sandbox Code Playgroud)

种子数据.sh在哪里:

sleep 15s cd /scripts

if [ -f /var/opt/mssql/data/initialized ]; then
    sleep infinity
    fi sleep 15s /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d …
Run Code Online (Sandbox Code Playgroud)

macos docker docker-compose

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

docker 错误:.IOError:[Errno 13] 权限被拒绝:“./docker-compose.yml”

我是 docker 的完全初学者,我正在尝试通过 docker ( https://github.com/RWTH-i5-IDSG/steve )安装一个名为 steve 的网络服务器应用程序。我正确地遵循了说明,但是当我使用命令“ *docker-compose up -d*”时,出现以下错误:

错误:.IOError:[Errno 13] 权限被拒绝:“./docker-compose.yml”

我正在运行最新版本的 ubuntu 18.04,到目前为止,我已经尝试了以下操作:-使用“ sudo docker-compose up -d”(相同错误)-使用“ sudo docker build”(正确构建但我仍然无法启动它)-更改 dockerfile 和 docker 的权限-compose.yml 到 777 - 将文件所有者更改为 root

这些文件与源代码完全相同。我只找到了一些有此错误的用户,他们发布了答案,但他们都没有工作,所以我提出了自己的问题。我为我糟糕的英语道歉。

permission-denied docker docker-compose

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

Docker - Java 容器不遵守内存限制

我一直在阅读有关限制容器的 JVM 内存的多篇文章,到目前为止没有任何效果,我不知道我在哪里搞砸了。

我在 Spring Boot 中制作了一个简单的“Hello World”,使用 REST 控制器,它没有别的。

此类应用程序被导出为 WAR 文件,使用 Tomcat JDK 11 映像运行它,我也可以使用具有 FatJar 的 JDK 映像运行它,但无论哪种方式,问题仍然存在。


预期的

让我的 Java 容器占用的内存不超过 25 MB(为了数量,可以更多)

实际的

这样一个简单的应用程序占用了 200 - 250 MB 的内存 docker stats


文件

FROM tomcat:9.0.30-jdk11-corretto
COPY tomcat.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh","run"]
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '3.7'

services:
    hello:
        build:
            context: .
            dockerfile: Dockerfile
        image: app-test
        environment:
            - JVM_OPTS=-Xms13m -Xmx25m
        ports:
            - 8080:8080
Run Code Online (Sandbox Code Playgroud)

我试过了

-Xms13m -Xmx25m

-XX:PermSize=13m -XX:MaxPermSize=25m

在我已经删除并忘记的其他标志中

java memory jvm docker docker-compose

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

如何在其 docker 容器中执行 psql 交互?

我想在 Postgres 交互式 shell 中运行查询。为此,我正在使用 docker 容器,如下所示:

这是 docker-compose 的相关部分:

  db_of_ivms:
    image: postgres:10
    restart: unless-stopped
    ports:
     - 5432:5432
    container_name: db_of_ivms
    environment:
      POSTGRES_PASSWORD: xxx
      POSTGRES_USER: ivms_usr
      POSTGRES_DB: ivms_db
Run Code Online (Sandbox Code Playgroud)

尽管如此,我正在处理这个错误:

docker exec -it -u 0 db_of_ivms bash

# psql

psql: FATAL:  role "root" does not exist
Run Code Online (Sandbox Code Playgroud)

django postgresql psql docker docker-compose

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

Docker PHP Nginx 404 权限被拒绝

我正在开发一个在 Windows 上使用 Docker 开发的项目。但是当我继续在我的 Linux 机器上处理它时,我得到了 404 Not Found nginx 页面。

在此处输入图片说明

我的网络服务器服务上的 Docker Compose 日志显示权限被拒绝

webserver    | 2020/03/14 10:05:29 [crit] 6#6: *1 stat() "/var/www/public/" failed (13: Permission denied), client: <my_ip_address>, server: , request: "GET / HTTP/1.1", host: "localhost"
webserver    | 2020/03/14 10:05:29 [crit] 6#6: *1 stat() "/var/www/public/" failed (13: Permission denied), client: <my_ip_address>, server: , request: "GET / HTTP/1.1", host: "localhost"
webserver    | 2020/03/14 10:05:29 [crit] 6#6: *1 stat() "/var/www/public/index.php" failed (13: Permission denied), client: <my_ip_address>, server: , request: …
Run Code Online (Sandbox Code Playgroud)

php linux nginx docker docker-compose

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

由 Docker-Compose 启动的 Mongo-Express 导致错误 [MongoError]:首次连接时无法连接到服务器 [mongo:27017]

场景:我想从同一个 docker-compose 启动 Mongo 和 Mongo-Express。

我只从 docker-compose 启动 mongodb 没有问题。当我尝试将 Mongo-Express 链接到 Mongo DB 服务时,问题就出现了。

我不确定我是否缺少 docker-compose 或 mongo-express 设置中的某些配置。我不希望这个问题成为 Mongo 设置的一部分。顺便说一句,我粘贴了整个 docker-compose 及其输出。

从波纹管日志我可以看到提高 Mongo 没有问题。当 mongo-express 尝试连接到 Mongo 服务时会出现一些问题,可能是因为我没有正确设置链接。最重要的是,我的 Spring Webflux 成功连接到具有波纹管属性的 Mongo DB。该问题实际上仅限于 mongo-express 到达 mongodb。

允许 Spring Data (spring-boot-starter-data-mongodb-reactive) 成功连接到此类 MongoDb 的 application.yml

spring:
  data:
    mongodb:
      host: 192.168.99.100
      port:  27017
      database: demodb
      authentication-database: admin
      username: root
      password: rootpassword
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '3.7'

services:
  mongo-express:
    image: mongo-express
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_BASICAUTH_USERNAME: admin
      ME_CONFIG_BASICAUTH_PASSWORD: q
      ME_CONFIG_MONGODB_PORT: 27017 …
Run Code Online (Sandbox Code Playgroud)

mongodb spring-data-mongodb docker docker-compose mongo-express

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

如何通过 Azure Pipelines 将多个 docker 映像部署到 Azure 应用服务

我有一个 docker compose .yml 文件,用于在 Linux Azure 应用服务上手动安装和运行多个 docker 映像。我的下一步是通过 Azure Pipelines 自动执行此操作,我已成功为单个映像执行此操作;但无法弄清楚如何为同一应用服务实例上的多个图像执行此操作。

这是在同一应用服务实例上运行多个图像的客户端要求。如果有更好的方法,我有一些灵活性,但成本是一个因素。

我特别在寻找要添加到我的发布管道中的任务类型,以及是否有任何我可以阅读的示例或文档。到目前为止,我还没有发现任何似乎真正符合要求的东西,但我不是 DevOps 工程师,所以很可能我只是没有正确地问这个问题。

这是我拥有的 docker compose yml 文件的示例。

version: '3.7'
    services:
      exampleapi:
        image: examplecontainerregistry.azurecr.io/example.api:latest
        container_name: example.api
        volumes:
          - example:/mnt/example
          - common:/mnt/common
      certprojectservice:
        image: examplecontainerregistry.azurecr.io/example.certproject.service:latest
        container_name: example.certproject.service
        volumes:
          - example:/mnt/example
          - common:/mnt/common 
      unityemailservice:
        image: examplecontainerregistry.azurecr.io/example.email.service:latest
        container_name: example.email.service
        volumes:
          - example:/mnt/example
          - common:/mnt/common   
      eventconsumerservice:
        image: examplecontainerregistry.azurecr.io/example.eventconsumers.service:latest
        container_name: example.eventconsumers.service
        volumes:
          - example:/mnt/example
          - common:/mnt/common 
      webhookresponseservice:
        image: examplecontainerregistry.azurecr.io/example.webhookresponse.service:latest
        container_name: example.webhookresponse.service
        volumes:
          - example:/mnt/example
          - common:/mnt/common 
      unitywebhooksservice:
        image: examplecontainerregistry.azurecr.io/example.webhooks.service:latest
        container_name: example.webhooks.service …
Run Code Online (Sandbox Code Playgroud)

docker-compose azure-web-app-service docker-container azure-pipelines-release-pipeline

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