FROM debian:bullseye-slim AS builder

ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC

# http://bugs.python.org/issue19846
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
ENV LANG C.UTF-8

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

# Install build deps
USER root
RUN apt-get update && \
	apt-get -y install wget python3 g++ zip python3-venv git vim ca-certificates

# create a non-priveleged user & group
RUN groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh

USER mesh
RUN wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -qO /tmp/get-platformio.py && \
	chmod +x /tmp/get-platformio.py && \
	python3 /tmp/get-platformio.py && \
	git clone https://github.com/meshtastic/firmware --recurse-submodules /tmp/firmware && \
	cd /tmp/firmware && \
	chmod +x /tmp/firmware/bin/build-native.sh && \
	source ~/.platformio/penv/bin/activate && \
	./bin/build-native.sh

FROM frolvlad/alpine-glibc

RUN apk --update add --no-cache g++ shadow && \
	groupadd -g 1000 mesh && useradd -ml -u 1000 -g 1000 mesh

COPY --from=builder /tmp/firmware/release/meshtasticd_linux_amd64 /home/mesh/

USER mesh
WORKDIR /home/mesh
CMD sh -cx "./meshtasticd_linux_amd64 --hwid '$RANDOM'"

HEALTHCHECK NONE