ERR_EMPTY_RESPONSE 与 docker 容器端口绑定

问题描述 投票:0回答:1

我已经在 docker 容器中安装了 vuejs3 和

npm run dev
以及
node:latest
图像。非常基本。 在容器内,它肯定是从 http://localhost:5173 开始的,因为我可以从内部通过 curl 获得响应。 但是从外部我得到 ERR_EMPTY_RESPONSE 即使绑定配置看起来没问题。 可能是什么?

我启动了 nginx 容器并绑定了 prod 构建,没有出现任何问题。但我想从节点容器运行开发模式。有什么问题吗?

我的 docker 没有损坏,其他容器也可以工作,问题就在这种情况下。 例如,此测试有效:

docker run --rm --name web-test -p 8101:8000 crccheck/hello-world

尝试更改端口 - 结果是相同的。

docker-compose.yml:

  node:
    container_name: project_node
    build:
      context: ./node
    command: npm run dev --host
    ports:
      - '8012:5173'
    volumes:
      - ./frontend:/var/www/html/frontend
    env_file:
      - ./.env
      - ./.env.local

容器配置:

{
    "Id": "0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834",
    "Created": "2024-03-27T08:57:36.009505574Z",
    "Path": "docker-entrypoint.sh",
    "Args": [
        "npm",
        "run",
        "dev",
        "--host"
    ],
    "State": {
        "Status": "running",
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 19438,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2024-03-27T08:57:36.894875078Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "sha256:08ba8dc9d0a2f946d64d2a4d10d44f4b3a8a491e886660662b988a23eacbb321",
    "ResolvConfPath": "/var/lib/docker/containers/0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834/hostname",
    "HostsPath": "/var/lib/docker/containers/0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834/hosts",
    "LogPath": "/var/lib/docker/containers/0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834/0c2a727ea2157749b2659892e095d752659629fea57dc00c66b4a4dcabbfb834-json.log",
    "Name": "/project_node",
    "RestartCount": 0,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": [
        "53c09ea7747dd387b3951a558fba7c98856966548674397a938e94b33770351e"
    ],
    "HostConfig": {
        "Binds": [
            "/home/oleg/Projects/Project/frontend:/var/www/html/frontend:rw"
        ],
        "ContainerIDFile": "",
        "LogConfig": {
            "Type": "json-file",
            "Config": {}
        },
        "NetworkMode": "project_default",
        "PortBindings": {
            "5173/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "8012"
                }
            ]
        },
        "RestartPolicy": {
            "Name": "no",
            "MaximumRetryCount": 0
        },
        "AutoRemove": false,
        "VolumeDriver": "",
        "VolumesFrom": null,
        "ConsoleSize": [
            0,
            0
        ],
        "CapAdd": null,
        "CapDrop": null,
        "CgroupnsMode": "private",
        "Dns": null,
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": [],
        "GroupAdd": null,
        "IpcMode": "private",
        "Cgroup": "",
        "Links": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyRootfs": false,
        "SecurityOpt": null,
        "UTSMode": "",
        "UsernsMode": "",
        "ShmSize": 67108864,
        "Runtime": "runc",
        "Isolation": "",
        "CpuShares": 0,
        "Memory": 0,
        "NanoCpus": 0,
        "CgroupParent": "",
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "BlkioDeviceReadBps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteIOps": null,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "Devices": null,
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "OomKillDisable": null,
        "PidsLimit": null,
        "Ulimits": null,
        "CpuCount": 0,
        "CpuPercent": 0,
        "IOMaximumIOps": 0,
        "IOMaximumBandwidth": 0,
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware",
            "/sys/devices/virtual/powercap"
        ],
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ]
    },
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/bd47faa2f830f6e00cb107fbde5eb6c16f572a73ae5d39835ba288b1b08c717e-init/diff:/var/lib/docker/overlay2/ysv70ss8cxx3n8qzeem4obp1o/diff:/var/lib/docker/overlay2/fa1e3cedd8b9f7e1a50f8d39fc129d13531b77ea0d4a0aeb85946ee1641befb5/diff:/var/lib/docker/overlay2/50ab4bc5b8a0e53eef3be6d89f4e89413f1f0fe2a033abc3f3fda721135f5fed/diff:/var/lib/docker/overlay2/0a9052835d87f936570e0001c7a03fc45dd22641fef4ffbfead4563ba46eb865/diff:/var/lib/docker/overlay2/102a8e95ee64ffc8982092955b297de48c369dccc4e1e3ebac4d94bbd24dcb5b/diff:/var/lib/docker/overlay2/2bfa6d3d255f5bf5239c675cdb98ae8520088d941eaa6d3ca86d366a114dc247/diff:/var/lib/docker/overlay2/ea930cd0ed7c2c50f2010d0b358d5d8b4a9252ee65c1e7e25f5c8e152251c6dd/diff:/var/lib/docker/overlay2/22695e5928efd2ff71aff2305901f38b534009e3e9c5e256f5832e22715fbbf2/diff:/var/lib/docker/overlay2/38f2474828e1e1c0d879d5b6d2bc485b3850c2e1ff267f109101ea3470b7ab94/diff",
            "MergedDir": "/var/lib/docker/overlay2/bd47faa2f830f6e00cb107fbde5eb6c16f572a73ae5d39835ba288b1b08c717e/merged",
            "UpperDir": "/var/lib/docker/overlay2/bd47faa2f830f6e00cb107fbde5eb6c16f572a73ae5d39835ba288b1b08c717e/diff",
            "WorkDir": "/var/lib/docker/overlay2/bd47faa2f830f6e00cb107fbde5eb6c16f572a73ae5d39835ba288b1b08c717e/work"
        },
        "Name": "overlay2"
    },
    "Mounts": [
        {
            "Type": "bind",
            "Source": "/home/oleg/Projects/Project/frontend",
            "Destination": "/var/www/html/frontend",
            "Mode": "rw",
            "RW": true,
            "Propagation": "rprivate"
        }
    ],
    "Config": {
        "Hostname": "0c2a727ea215",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": true,
        "AttachStderr": true,
        "ExposedPorts": {
            "5173/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "MYSQL_USER=user",
            "MYSQL_PASSWORD=password",
            "PROJECT_NAME=project",
            "MYSQL_ROOT_PASSWORD=root",
            "MYSQL_DATABASE=database",
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "NODE_VERSION=21.7.1",
            "YARN_VERSION=1.22.19"
        ],
        "Cmd": [
            "npm",
            "run",
            "dev",
            "--host"
        ],
        "Image": "project-node",
        "Volumes": null,
        "WorkingDir": "/var/www/html/frontend",
        "Entrypoint": [
            "docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": {
            "com.docker.compose.config-hash": "b56fdc29d88cb3e05e5d9de8c7370cd1dd40935dc3fdd103f13fca1d680e4a9c",
            "com.docker.compose.container-number": "1",
            "com.docker.compose.depends_on": "",
            "com.docker.compose.image": "sha256:08ba8dc9d0a2f946d64d2a4d10d44f4b3a8a491e886660662b988a23eacbb321",
            "com.docker.compose.oneoff": "False",
            "com.docker.compose.project": "project",
            "com.docker.compose.project.config_files": "/home/oleg/Projects/Project/docker-compose.yml",
            "com.docker.compose.project.working_dir": "/home/oleg/Projects/Project",
            "com.docker.compose.replace": "80bab7baddb0e3f33c38087fa0065fae8250473dafd83cdd16cd86c30e2e61a3",
            "com.docker.compose.service": "node",
            "com.docker.compose.version": "2.24.6"
        }
    },
    "NetworkSettings": {
        "Bridge": "",
        "SandboxID": "347d1528d4b5f06723219e6754e9f0e76e5f3c34c4be2815006ecaab684d5b40",
        "SandboxKey": "/var/run/docker/netns/347d1528d4b5",
        "Ports": {
            "5173/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "8012"
                }
            ]
        },
        "HairpinMode": false,
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null,
        "EndpointID": "",
        "Gateway": "",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "IPAddress": "",
        "IPPrefixLen": 0,
        "IPv6Gateway": "",
        "MacAddress": "",
        "Networks": {
            "project_default": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "project_node",
                    "node",
                    "0c2a727ea215"
                ],
                "MacAddress": "02:42:ac:16:00:02",
                "NetworkID": "a8424dd4d2742919d85d64df6e638a87691d226dcbd468e1a5b87d921238e363",
                "EndpointID": "5429fdbfa90b9dbbd80958d602f7b23a1926db79b7b1c059c577a1120726a9fa",
                "Gateway": "172.22.0.1",
                "IPAddress": "172.22.0.2",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "DriverOpts": null,
                "DNSNames": [
                    "project_node",
                    "node",
                    "0c2a727ea215"
                ]
            }
        }
    }
}
docker vue.js npm binding port
1个回答
0
投票

非常感谢大卫! 问题出在 npm 命令中,而不是 docker 中。添加额外的

--
对我来说非常不明显。

npm run dev -- --host
© www.soinside.com 2019 - 2024. All rights reserved.