Lbrynet containers for compiling and running armhf and x86_64 #53
1 changed files with 27 additions and 37 deletions
|
@ -3,61 +3,51 @@ FROM ubuntu:18.04
|
|||
LABEL MAINTAINER="leopere [at] nixc [dot] us"
|
||||
|
||||
RUN apt-get update && apt-get -y install unzip
|
||||
# RUN mkdir -pv /data && chown 1000:1000 /data
|
||||
RUN adduser lbrynet --gecos GECOS --shell /bin/bash/ --disabled-password --home /data/
|
||||
# RUN mkdir -pv /lbrynet && chown 1000:1000 /lbrynet
|
||||
RUN adduser lbrynet --gecos GECOS --shell /bin/bash/ --disabled-password --home /lbrynet/
|
||||
|
||||
## Add lbrynet
|
||||
ADD https://lbry.io/get/lbrynet.linux.zip /data/lbrynet.linux.zip
|
||||
RUN unzip /data/lbrynet.linux.zip -d /data/ && \
|
||||
rm /data/lbrynet.linux.zip && \
|
||||
chown -Rv traefik:lbrynet /data
|
||||
ADD https://lbry.io/get/lbrynet.linux.zip /lbrynet/lbrynet.linux.zip
|
||||
RUN unzip /lbrynet/lbrynet.linux.zip -d /lbrynet/ && \
|
||||
rm /lbrynet/lbrynet.linux.zip && \
|
||||
chown -Rv traefik:lbrynet /lbrynet
|
||||
|
||||
RUN wget -quiet -O /usr/bin/debugpaste https://github.com/nixc-us/debugpaste-it/raw/master/bin/debugpaste_64 && \
|
||||
chmod +x /usr/bin/debugpaste
|
||||
|
||||
## Install into PATH
|
||||
RUN mv /data/lbrynet-* /bin/
|
||||
|
||||
COPY debugpaste-it.sh /usr/local/bin/debugpaste-it
|
||||
RUN mv /lbrynet/lbrynet-* /bin/
|
||||
|
||||
## Daemon port [Intended for internal use]
|
||||
EXPOSE 4444
|
||||
## Wallet port [Intended for internal use]
|
||||
EXPOSE 50001
|
||||
## LBRYNET talks to peers on port 3333 [Intended for external use] this port is used to discover other lbrynet daemons with blobs.
|
||||
EXPOSE 3333
|
||||
|
||||
|
||||
## TODO: Look over these comments and get up to date on what's needed for exclusively lbrynet
|
||||
## Undocumented ports that exist in conf.py
|
||||
## API port
|
||||
# EXPOSE 5279
|
||||
# ## Reflector port
|
||||
# EXPOSE 5566
|
||||
## ToDo: Determine why this port isn't documented in the lbry.tech resources for daemon-settings
|
||||
# ## Wallet port [Intended for internal use]
|
||||
# EXPOSE 50001
|
||||
## All ports that are listed in the networking section of lbry.tech/resources/daemon-settings
|
||||
# 3333 5566 4444 5279
|
||||
|
||||
## TODO: Highly Important, look over this and switch to managing a YAML config https://lbry.tech/resources/daemon-settings
|
||||
|
||||
## VOLUMES
|
||||
## Right now the volumes are just added in a commented out state but if the end
|
||||
## user would prefer to add volumes to their own usage cases all they will need
|
||||
## to do is uncomment what they require and then build the container using docker-compose.yml
|
||||
|
||||
## Volumize the wallets in a separate location for backup purposes may be unnecessary.
|
||||
# VOLUME /data/.local/share/lbry/lbryum/wallets
|
||||
# VOLUME /data/.local/
|
||||
## If the config ends up needing it's own volume it should be located here.
|
||||
# VOLUME /etc/lbry/conf.py
|
||||
## Downloaded blobs will be in their own separate volume for keeping backups of critical secrets and data separate from backups of potentially massive blob files.
|
||||
# VOLUME /data/Downloads/
|
||||
# VOLUME /lbrynet/.local/share/lbry/lbryum/wallets
|
||||
# VOLUME /lbrynet/.local/
|
||||
|
||||
## Example daemon_settings.yml is at https://github.com/lbryio/lbry/blob/master/example_daemon_settings.yml
|
||||
# VOLUME /etc/lbry/daemon_settings.yml
|
||||
|
||||
## Downloaded blobs will be in their own separate volume for keeping backups of critical secrets and data separate from backups of potentially massive blob files.
|
||||
# VOLUME /lbrynet/Downloads/
|
||||
|
||||
## ToDo: replace lbrynet direct execution with start.sh function for enforcing directory perms on container launch.
|
||||
|
||||
## TODO: Decide if this next step is ideal or if it would be samrter to run as root to assert volume permissions on launch for improved container statelessness.
|
||||
## Never run container processes as root
|
||||
USER lbrynet
|
||||
|
||||
## TODO: Add start.sh script which can assert permissions and do any configuration prep that's required on container start.
|
||||
## Run on container launch
|
||||
CMD ["lbrynet-daemon"]
|
||||
|
||||
## TODO: Cleanup below
|
||||
## Setting this entrypoint should mean that you can `docker exec lbrynet commands`
|
||||
## and you should be able to control the daemon's CLI this way. There is an
|
||||
## alternative method we could use here where we have an entrypoint shell script which could be a bit smarter.
|
||||
## An docker-entrypoint should eventually be created and installed into the container $PATH with a config install script that checks for the existance of a config.py and if it exists don't install docker envvars established elsewhere.
|
||||
## If the container doesn't detect a conf.py file however have it install a fresh copy into /etc/lbry/conf.py and run that from a fresh copy from somewhere sensible.
|
||||
# ENTRYPOINT ["lbrynet-cli"]
|
||||
CMD ["lbrynet", "start"]
|
||||
|
|
Loading…
Reference in a new issue