docker 容器没有发送任何数据
docker container didn't send any data
运行 docker build -t <IMAGE_NAME> .
然后 运行 docker run -p 8080:8080 <IMAGE_NAME>
记录到控制台它工作但 127.0.0.1:8080 不显示客户端
Docker 文件:
FROM rust:1.60.0-slim-buster
WORKDIR /app
COPY . .
RUN rustup target add wasm32-unknown-unknown
RUN cargo install --locked --version 0.15.0 trunk
RUN trunk build --release
EXPOSE 8080
CMD ["trunk", "serve", "--release"]
Cargo.toml
[package]
name = "yew-whos-that-pokemon-client"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
getrandom = { version = "0.2.4", features = ["js"] }
rand = "0.8.5"
reqwest = "0.11.10"
serde_json = "1.0.81"
wasm-bindgen-futures = "0.4.30"
web-sys = "0.3.57"
yew = "0.19.3"
这在本地工作得很好,我尝试了多个浏览器
如果需要解决此问题,请参考源代码:https://github.com/apinanyogaratnam/yew-whos-that-pokemon-client
任何帮助将不胜感激,谢谢
server listening at http://127.0.0.1:8080
表示服务器将只接受来自 127.0.0.1 的连接,即 localhost。
在容器中,localhost 就是容器本身,因此您的程序不会接受来自容器外部的连接。
要做到这一点,您应该将您的程序绑定到 0.0.0.0
,这将使其接受来自任何地方的连接。
我不是 Rust 专家,但 trunk serve
上似乎有一个 --address
选项,您可以使用它来告诉它绑定到哪个地址。我没能找到例子。只有这些 release notes 他们说他们出于安全原因将默认绑定地址从 0.0.0.0
更改为 127.0.0.1
并引入了 --address
选项以防您需要设置另一个地址.
更新:我尝试下载您的项目,如果我将 Dockerfile 中的 CMD 语句更改为
CMD ["trunk", "serve", "--release", "--address", "0.0.0.0"]
有效。
运行 docker build -t <IMAGE_NAME> .
然后 运行 docker run -p 8080:8080 <IMAGE_NAME>
记录到控制台它工作但 127.0.0.1:8080 不显示客户端
Docker 文件:
FROM rust:1.60.0-slim-buster
WORKDIR /app
COPY . .
RUN rustup target add wasm32-unknown-unknown
RUN cargo install --locked --version 0.15.0 trunk
RUN trunk build --release
EXPOSE 8080
CMD ["trunk", "serve", "--release"]
Cargo.toml
[package]
name = "yew-whos-that-pokemon-client"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
getrandom = { version = "0.2.4", features = ["js"] }
rand = "0.8.5"
reqwest = "0.11.10"
serde_json = "1.0.81"
wasm-bindgen-futures = "0.4.30"
web-sys = "0.3.57"
yew = "0.19.3"
这在本地工作得很好,我尝试了多个浏览器
如果需要解决此问题,请参考源代码:https://github.com/apinanyogaratnam/yew-whos-that-pokemon-client
任何帮助将不胜感激,谢谢
server listening at http://127.0.0.1:8080
表示服务器将只接受来自 127.0.0.1 的连接,即 localhost。
在容器中,localhost 就是容器本身,因此您的程序不会接受来自容器外部的连接。
要做到这一点,您应该将您的程序绑定到 0.0.0.0
,这将使其接受来自任何地方的连接。
我不是 Rust 专家,但 trunk serve
上似乎有一个 --address
选项,您可以使用它来告诉它绑定到哪个地址。我没能找到例子。只有这些 release notes 他们说他们出于安全原因将默认绑定地址从 0.0.0.0
更改为 127.0.0.1
并引入了 --address
选项以防您需要设置另一个地址.
更新:我尝试下载您的项目,如果我将 Dockerfile 中的 CMD 语句更改为
CMD ["trunk", "serve", "--release", "--address", "0.0.0.0"]
有效。