FROM rust:latest

RUN rustup target add x86_64-unknown-linux-musl
RUN apt update && apt install -y musl-tools musl-dev curl jq
RUN update-ca-certificates

ADD src/aichat/entrypoint.sh /entrypoint.sh
RUN chmod 755 entrypoint.sh

RUN useradd -ms /bin/bash aichat
USER aichat

WORKDIR /home/aichat
RUN git clone --branch v0.30.0 --depth 1 https://github.com/sigoden/aichat
WORKDIR /home/aichat/aichat
RUN cargo build --release --target=x86_64-unknown-linux-musl

USER root
RUN cp /home/aichat/aichat/target/x86_64-unknown-linux-musl/release/aichat /usr/bin/aichat

USER aichat
RUN mkdir -p /home/aichat/.config/aichat
ADD tools/gen_aichat_conf.sh /home/aichat/gen_aichat_conf.sh

ADD src/aichat/roles /home/aichat/.config/aichat/roles

ENTRYPOINT ["/entrypoint.sh"]
