所以我决定将我的 Rust 项目容器化。 这是我的 Dockerfile。
FROM rust:slim
WORKDIR /usr/src/app
COPY . .
RUN cargo build --release
CMD ["/usr/src/app/target/debug/solfire"]
这是我的 docker-compose.yml
version: "3.8"
services:
app:
build: ./
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://postgres:postgres@db:5432/postgres
depends_on:
- postgres
postgres:
image: postgres:latest
ports:
- "5433:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
运行 docker-compose up 后得到的是:
error: linking with `cc` failed: exit status: 1
我相信问题出在 Dockerfile 上,我找不到如何修复它。
如果运行
cargo build --release
,二进制文件将不会位于 target/debug
文件夹中。
您的 Dockerfile 需要指向二进制文件的位置。
可能是在
target/release
。