Document everything in chainquery Dockerfile
This commit is contained in:
parent
2295a9df06
commit
27066dceca
1 changed files with 19 additions and 5 deletions
|
@ -2,37 +2,51 @@
|
||||||
FROM ubuntu:18.04 as prep
|
FROM ubuntu:18.04 as prep
|
||||||
LABEL MAINTAINER="leopere [at] nixc [dot] us"
|
LABEL MAINTAINER="leopere [at] nixc [dot] us"
|
||||||
|
|
||||||
|
## Install everything needed to unzip the file containing Chainquery
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get -y install unzip curl && \
|
apt-get -y install unzip curl && \
|
||||||
apt-get autoclean -y && \
|
apt-get autoclean -y && \
|
||||||
rm -rf /var/lib/apt/lists/* && \
|
rm -rf /var/lib/apt/lists/* && \
|
||||||
mkdir /download
|
mkdir /download
|
||||||
|
|
||||||
|
## Download and extract the latest Zip containing Linux binary for Chainquery.
|
||||||
RUN curl -L -o /download/chainquery.zip $(curl -s https://api.github.com/repos/lbryio/chainquery/releases | fgrep 'Linux_x86_64.zip' | grep download | head -n 1 | cut -d'"' -f4) && \
|
RUN curl -L -o /download/chainquery.zip $(curl -s https://api.github.com/repos/lbryio/chainquery/releases | fgrep 'Linux_x86_64.zip' | grep download | head -n 1 | cut -d'"' -f4) && \
|
||||||
cd /download && \
|
cd /download && \
|
||||||
ls -lAh /download && pwd && \
|
ls -lAh /download && pwd && \
|
||||||
unzip chainquery.zip && \
|
unzip chainquery.zip && \
|
||||||
rm chainquery.zip
|
rm chainquery.zip
|
||||||
## I really want to use this instead of all the curl stuff at one point.
|
|
||||||
|
## TODO: Use this instead of everything above here at some point. To do this we will need the LBRY team to host all of their release binaries in their latest form internally I guess since github doesn't support latest tags.
|
||||||
# ADD --chown=1000:1000 https://github.com/lbryio/chainquery/releases/download/latest/chainquery_latest_Linux_x86_64.zip /download
|
# ADD --chown=1000:1000 https://github.com/lbryio/chainquery/releases/download/latest/chainquery_latest_Linux_x86_64.zip /download
|
||||||
|
|
||||||
|
|
||||||
## Switch to Alpine eventually we might need to compile in Alpine for this.
|
# TODO: Switch to Alpine eventually we might need to compile in Alpine for this.
|
||||||
FROM ubuntu:18.04 as app
|
FROM ubuntu:18.04 as app
|
||||||
|
|
||||||
|
## Run as unprivileged user.
|
||||||
RUN adduser chainquery --gecos GECOS --shell /bin/bash --disabled-password --home /home/chainquery
|
RUN adduser chainquery --gecos GECOS --shell /bin/bash --disabled-password --home /home/chainquery
|
||||||
|
|
||||||
|
# Pull chainquery executable from prep container.
|
||||||
COPY --from=0 /download/chainquery /usr/bin
|
COPY --from=0 /download/chainquery /usr/bin
|
||||||
|
|
||||||
# ADD --chown=1000:1000 https://github.com/lbryio/chainquery/releases/download/latest/chainquery_latest_Linux_x86_64.zip /usr/bin
|
# ADD --chown=1000:1000 https://github.com/lbryio/chainquery/releases/download/latest/chainquery_latest_Linux_x86_64.zip /usr/bin
|
||||||
COPY chainqueryconfig.toml /etc/chainquery/
|
COPY chainqueryconfig.toml /etc/chainquery/
|
||||||
ADD --chown=1000:1000 https://raw.githubusercontent.com/lbryio/chainquery/master/config/default/chainqueryconfig.toml /etc/chainquery/chainqueryconfig.toml.orig
|
|
||||||
COPY start.sh /usr/local/bin/start
|
|
||||||
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint
|
|
||||||
|
|
||||||
|
## Get latest chainqueryconfig.toml from master on github as template.
|
||||||
|
# TODO: add magic which pattern matches for chainqueryconfig.toml DEFAULT strings and replaces them with configured settings on container start.
|
||||||
|
ADD --chown=1000:1000 https://raw.githubusercontent.com/lbryio/chainquery/master/config/default/chainqueryconfig.toml /etc/chainquery/chainqueryconfig.toml.orig
|
||||||
|
|
||||||
|
## Install start.sh as executable script in container $PATH
|
||||||
|
COPY start.sh /usr/local/bin/start
|
||||||
|
|
||||||
|
# TODO: Implement docker-entrypoint if later required this might be handy if we need certain maintainence tasks to be executed in the live container.
|
||||||
|
# COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint
|
||||||
|
|
||||||
|
## From here onward we're doing this with no root.
|
||||||
USER chainquery
|
USER chainquery
|
||||||
|
|
||||||
## Expose Chainquery API port
|
## Expose Chainquery API port
|
||||||
EXPOSE 6300
|
EXPOSE 6300
|
||||||
|
|
||||||
|
## Execute start script earlier installed into $PATH
|
||||||
CMD ["start"]
|
CMD ["start"]
|
||||||
|
|
Loading…
Reference in a new issue