#######################################
FROM rust:1.60-bullseye as builder

# CARGO_HOME was defined by rust image
VOLUME $CARGO_HOME/registry /data

WORKDIR /data

COPY . ./

# 构建时没有注入外部环境变量,无法访问数据库,故:
#
# - 开启 SQLx 离线模式
# - 禁用集成测试,只做单元测试
#
ENV SQLX_OFFLINE=true
RUN set -eux; \
    cargo test --lib; \
    cargo install --root /usr/local --path .

#######################################
FROM buildpack-deps:bullseye-curl

COPY --from=builder         \
    /usr/local/bin/zpoint   \
    /usr/local/bin/

CMD ["zpoint"]