64 lines
1.8 KiB
Docker
64 lines
1.8 KiB
Docker
ARG GO_VERSION=1.18.2
|
|
FROM golang:$GO_VERSION@sha256:04fab5aaf4fc18c40379924674491d988af3d9e97487472e674d0b5fd837dfac as algorand-algod
|
|
|
|
# Support additional root CAs
|
|
COPY config.dev cert.pem* /certs/
|
|
# Debian
|
|
RUN if [ -e /certs/cert.pem ]; then cp /certs/cert.pem /etc/ssl/certs/ca-certificates.crt; fi
|
|
# git
|
|
RUN if [ -e /certs/cert.pem ]; then git config --global http.sslCAInfo /certs/cert.pem; fi
|
|
|
|
ARG CHANNEL=master
|
|
ARG URL="https://github.com/algorand/go-algorand"
|
|
ARG BRANCH=master
|
|
ARG SHA=
|
|
|
|
# When these are set attempt to connect to a network.
|
|
ARG GENESIS_FILE=""
|
|
ARG BOOTSTRAP_URL=""
|
|
|
|
# Options for algod config
|
|
ARG ALGOD_PORT="4001"
|
|
ARG KMD_PORT="4002"
|
|
ARG TOKEN="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
ARG TEMPLATE="images/algod/DevModeNetwork.json"
|
|
|
|
RUN echo "Installing from source. ${URL} -- ${BRANCH}"
|
|
ENV BIN_DIR="$HOME/node"
|
|
ENV ALGORAND_DATA="/opt/data"
|
|
|
|
# Basic dependencies.
|
|
ENV HOME /opt
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
RUN apt-get update && apt-get install -y apt-utils curl git git-core bsdmainutils python3
|
|
|
|
# Copy lots of things into the container. The gitignore indicates which directories.
|
|
COPY . /tmp
|
|
|
|
# Install algod binaries.
|
|
RUN /tmp/images/algod/install.sh \
|
|
-d "${BIN_DIR}" \
|
|
-u "https://github.com/algorand/go-algorand" \
|
|
-b "v3.16.2-stable" \
|
|
-s ""
|
|
|
|
# Configure network
|
|
RUN /tmp/images/algod/setup.py \
|
|
--bin-dir "$BIN_DIR" \
|
|
--data-dir "/opt/data" \
|
|
--start-script "/opt/start_algod.sh" \
|
|
--network-dir "/opt/testnetwork" \
|
|
--network-template "//tmp/images/algod/DevModeNetwork.json" \
|
|
--network-token "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
|
|
--algod-port "4001" \
|
|
--kmd-port "4002" \
|
|
--bootstrap-url "${BOOTSTRAP_URL}" \
|
|
--genesis-file "/tmp/${GENESIS_FILE}"
|
|
|
|
|
|
ENV PATH="$BIN_DIR:${PATH}"
|
|
WORKDIR /opt/data
|
|
|
|
# Start algod
|
|
CMD ["/opt/start_algod.sh"]
|