FROM {{pixi_image}} AS build

COPY conda.yml /opt/wave/conda.yml
WORKDIR /opt/wave

RUN pixi init --import /opt/wave/conda.yml \
    && pixi add conda-forge::which \
    {{base_packages}}
    && pixi shell-hook > /shell-hook.sh \
    && echo 'exec "$@"' >> /shell-hook.sh \
    && echo ">> CONDA_LOCK_START" \
    && cat /opt/wave/pixi.lock \
    && echo "<< CONDA_LOCK_END"

FROM {{base_image}} AS final

# copy the pixi environment in the final container
COPY --from=build /opt/wave/.pixi/envs/default /opt/wave/.pixi/envs/default
COPY --from=build /shell-hook.sh /shell-hook.sh

# set user and environment variables for Python compatibility
USER root
ENV USER=root

# set the entrypoint to the shell-hook script (activate the environment and run the command)
# no more pixi needed in the final container
ENTRYPOINT ["/bin/bash", "/shell-hook.sh"]

# Default command for "docker run"
CMD ["/bin/bash"]
