mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-01-22 12:34:24 +00:00
Add improved Dockerfile with wrapper script for seamless upgrades
This commit is contained in:
parent
7f0f1a96af
commit
2689a5af88
45
Dockerfile
45
Dockerfile
@ -1,34 +1,25 @@
|
||||
#
|
||||
# Dockerfile for building Twister peer-to-peer micro-blogging
|
||||
#
|
||||
FROM ubuntu:14.04
|
||||
|
||||
FROM debian:testing
|
||||
MAINTAINER Álvaro Justen <alvarojusten@gmail.com>
|
||||
# Install twister-core
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y git autoconf libtool build-essential libboost-all-dev libssl-dev libdb++-dev libminiupnpc-dev && apt-get clean
|
||||
#RUN git clone https://github.com/miguelfreitas/twister-core.git
|
||||
ADD . /twister-core
|
||||
RUN cd twister-core && \
|
||||
./bootstrap.sh && \
|
||||
make
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
# Install twister-html
|
||||
RUN git clone https://github.com/miguelfreitas/twister-html.git /twister-html
|
||||
|
||||
# Update repositories
|
||||
RUN echo 'deb http://http.debian.net/debian testing main contrib' > /etc/apt/sources.list
|
||||
RUN echo 'deb http://http.debian.net/debian testing-updates main contrib' >> /etc/apt/sources.list
|
||||
RUN echo 'deb http://security.debian.org testing/updates main contrib' >> /etc/apt/sources.list
|
||||
RUN apt-get update
|
||||
# Configure HOME directory
|
||||
# and persist twister data directory as a volume
|
||||
ENV HOME /root
|
||||
VOLUME /root/.twister
|
||||
|
||||
# Install needed packages to build and run twisterd
|
||||
RUN apt-get -y install \
|
||||
git autoconf libtool build-essential \
|
||||
libboost-all-dev libdb++-dev libminiupnpc-dev libssl-dev
|
||||
|
||||
# Clean APT cache to save disk space
|
||||
RUN apt-get clean
|
||||
|
||||
# Download and build twister
|
||||
RUN mkdir /root/.twister
|
||||
RUN git clone https://github.com/miguelfreitas/twister-core.git /root/twister-core
|
||||
RUN git clone https://github.com/miguelfreitas/twister-html.git /root/.twister/html
|
||||
RUN cd /root/twister-core && ./bootstrap.sh
|
||||
RUN cd /root/twister-core && make
|
||||
|
||||
EXPOSE 28332
|
||||
ENTRYPOINT ["/root/twister-core/twisterd"]
|
||||
CMD ["-rpcuser=user", "-rpcpassword=pwd", "-rpcallowip=*", \
|
||||
"-datadir=/root/.twister", "-htmldir=/root/.twister/html"]
|
||||
# Run twisterd by default
|
||||
CMD ["/twister-core/twisterd", "-rpcuser=user", "-rpcpassword=pwd", "-rpcallowip=172.17.42.1", "-htmldir=/twister-html", "-printtoconsole"]
|
||||
EXPOSE 28332
|
||||
|
13
README.md
13
README.md
@ -28,12 +28,15 @@ Please follow the instructions for your platform:
|
||||
- [Mac OS X](https://github.com/miguelfreitas/twister-core/blob/master/doc/build-osx.md)
|
||||
- [Windows (untested)](https://github.com/miguelfreitas/twister-core/wiki/Compiling-for-Windows)
|
||||
|
||||
Or, alternatively, you can build Twister on an isolated Linux container, using
|
||||
[docker](http://docker.io/):
|
||||
Or, alternatively, you can run Twister on an isolated Linux container, using [docker](http://docker.io/). Quickstart:
|
||||
|
||||
docker build -t twister https://raw.githubusercontent.com/miguelfreitas/twister-core/master/Dockerfile
|
||||
docker run -d -p 127.0.0.1:1234:28332 twister
|
||||
# now try to access http://127.0.0.1:1234/ on docker host
|
||||
# Prepend "sudo -E" if you are not logged in as root
|
||||
./docker-container run --remote
|
||||
|
||||
The above command downloads and runs a [pre-built image](https://index.docker.io/u/mazzolino/twister/) from the Docker index. You can also build and run your own container:
|
||||
|
||||
./docker-container build
|
||||
./docker-container run
|
||||
|
||||
> According to our tests, at least 1GB of RAM is needed to compile Twister.
|
||||
|
||||
|
52
docker-container
Executable file
52
docker-container
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Build or run a docker image of twister
|
||||
#
|
||||
|
||||
ACTION=${1:-run}
|
||||
MODE=${2:---local}
|
||||
|
||||
IMAGE_NAME=twister
|
||||
REMOTE_IMAGE_NAME=mazzolino/twister
|
||||
|
||||
set -e
|
||||
|
||||
case $ACTION in
|
||||
|
||||
build)
|
||||
echo Building $IMAGE_NAME
|
||||
docker build -t $IMAGE_NAME .
|
||||
;;
|
||||
|
||||
run)
|
||||
if [ $MODE == "--remote" ]; then
|
||||
IMAGE_NAME=$REMOTE_IMAGE_NAME
|
||||
fi
|
||||
echo Running $IMAGE_NAME
|
||||
docker run -d -p 28332:28332 -v $HOME/.twister:/root/.twister $IMAGE_NAME
|
||||
echo Twister should now be running at http://localhost:28332
|
||||
;;
|
||||
|
||||
stop)
|
||||
CID=$(docker ps | grep twister | awk '{print $1}')
|
||||
if [ "$CID" ]; then
|
||||
echo Stopping container $CID
|
||||
docker stop $CID
|
||||
docker rm $CID
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo Usage:
|
||||
echo " $0 run"
|
||||
echo " Run twister from a local docker build (default)"
|
||||
echo
|
||||
echo " $0 run --remote"
|
||||
echo " Run twister from the remote docker build at \"$REMOTE_IMAGE_NAME\""
|
||||
echo
|
||||
echo " $0 build"
|
||||
echo " Build a local docker image for twister"
|
||||
|
||||
exit 2
|
||||
|
||||
esac
|
Loading…
x
Reference in New Issue
Block a user