在两个Docker容器之间发送API请求

uqcuzwp8  于 2023-02-11  发布在  Docker
关注(0)|答案(1)|浏览(156)

我在Mac OSX(Ventura)本地运行Magento 2的DDEV环境
https://ddev.readthedocs.io/en/stable/users/quickstart/#magento-2
出于测试目的,我在我的ddev项目.ddev/docker-compose.nifi.yaml中包含了Nifi per docker-compose.yaml
下面你可以看到docker-compose,这是最小的,Nifi的工作就像预期的那样,因为我可以登录等,虽然它还不是持久的,但这是一个不同的问题

version: '3'
services:
  nifi:
    image: apache/nifi:latest
    container_name: ddev-${DDEV_SITENAME}-nifi
    ports:
      # HTTP
      - "8080:8080"
      # HTTPS
      - "8443:8443"
    volumes:
        # - ./nifi/database_repository:/opt/nifi/nifi-current/database_repository
        # - ./nifi/flowfile_repository:/opt/nifi/nifi-current/flowfile_repository
        # - ./nifi/content_repository:/opt/nifi/nifi-current/content_repository
        # - ./nifi/provenance_repository:/opt/nifi/nifi-current/provenance_repository
        # - ./nifi/state:/opt/nifi/nifi-current/state
        # - ./nifi/logs:/opt/nifi/nifi-current/logs
        # - ./nifi/conf/login-identity-providers.xml:/opt/nifi/nifi-current/conf/login-identity-providers.xml
        - ".:/mnt/ddev_config"

我想做的就是从Nifi向我的Magento 2模块发送一个POST请求。
我现在尝试了几个IP,我从docker inspect ddev-ddev-magento2-web获得,但我总是收到“连接拒绝”
我从docker network ls得到的输出:

NETWORK ID     NAME                         DRIVER    SCOPE
95bea4031396   bridge                       bridge    local
692b58ca294e   ddev-ddev-magento2_default   bridge    local
46be47991abe   ddev_default                 bridge    local
7e19ae1626f1   host                         host      local
f8f4f1aeef04   nifi_docker_default          bridge    local
dbdba30546d7   nifi_docker_mynetwork        bridge    local
ca12e667b773   none                         null      local

我的Magento 2-Module工作正常,因为从Postman向它发送请求工作正常

nfs0ujit

nfs0ujit1#

你不想要你所拥有的大部分东西,请删除ports语句,你根本不需要它;如果您需要任何东西,您将需要expose。但我怀疑您在这种情况下是否需要它?
你会想看看文档:

然后创建一个.ddev/docker-compose.nifi.yaml,内容如下

services:
  nifi:
    image: apache/nifi:latest
    container_name: ddev-${DDEV_SITENAME}-nifi
    container_name: "ddev-${DDEV_SITENAME}-someservice"
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: ${DDEV_APPROOT}
    expose:
      - "8080"
    environment:
      - VIRTUAL_HOST=$DDEV_HOSTNAME
      - HTTP_EXPOSE=8080:8080
      - HTTPS_EXPOSE=9999:8080
    volumes:
        - ".:/mnt/ddev_config"

假设您在端口8080上有NIFI,则NIFI容器内部的“Web”容器的名称将是“Web”,curl http://web:8080
我不知道你想完成什么,但这可能会让你开始。欢迎访问DDEV Discord channel以获得更多交互式帮助。

相关问题