FROM alpine:$alpine_version

LABEL distro_style="apk" distro="alpine" distro_long="alpine-$alpine_version" arch="x86_64" operatingsystem="linux"

RUN adduser -S tezos && \
    adduser tezos abuild && \
    apk update && \
    apk upgrade && \
    apk add sudo bash libssl1.0 libsodium libev gmp git snappy && \
    rm -f /var/cache/apk/* && \
    echo 'tezos ALL=(ALL:ALL) NOPASSWD:ALL' > /etc/sudoers.d/tezos && \
    chmod 440 /etc/sudoers.d/tezos && \
    chown root:root /etc/sudoers.d/tezos && \
    sed -i 's/^Defaults.*requiretty//g' /etc/sudoers

USER tezos

COPY . /home/tezos

WORKDIR /home/tezos

RUN sudo apk update && \
    sudo apk add abuild build-base snappy-dev && \
    abuild-keygen -ai && \
    mkdir leveldb-1.18 && \
    cp scripts/leveldb-1.18.APKBUILD leveldb-1.18/APKBUILD && \
    cd leveldb-1.18 && \
    abuild checksum && abuild -r && \
    cd .. && \
    sudo apk del build-base snappy-dev abuild && \
    sudo apk add packages/tezos/x86_64/leveldb-1.18-r0.apk && \
    rm -rf leveldb-1.18 packages && \
    sudo rm -f /var/cache/apk/*

RUN sudo chown root:root bin/* && \
    sudo chmod a+rx bin/* && \
    sudo mv bin/* /usr/local/bin && \
    rmdir bin

RUN sudo cp scripts/docker_entrypoint.sh /usr/local/bin/tezos && \
    sudo cp scripts/docker_entrypoint.inc.sh \
            /usr/local/bin/ && \
    sudo chmod a+rx /usr/local/bin/tezos

RUN sudo mkdir -p /var/run/tezos && \
    sudo chown tezos /var/run/tezos

ENV EDITOR=vi

VOLUME /var/run/tezos

ENTRYPOINT [ "/usr/local/bin/tezos" ]