add chrome history slurper and solana dockerfile

master
Jeffrey Paul 4 years ago
parent b93b7d52f7
commit 985d7f735a
  1. 24
      chromeurls/urls.sh
  2. 94
      solanad.dockerfile/Dockerfile
  3. 5
      solanad.dockerfile/Makefile
  4. 30
      solanad.dockerfile/run.solanad
  5. 48
      solanad.dockerfile/supervise.sh

@ -0,0 +1,24 @@
#!/bin/bash
SRC="$HOME/Library/Application Support/Google/Chrome/Default/History"
Q="SELECT
datetime(last_visit_time/1000000-11644473600, \"unixepoch\") as last_visited,
last_visit_time as orig,
url,
title,
visit_count
FROM urls
ORDER BY last_visited desc
LIMIT 1
;
"
mkdir -p $HOME/tmp
cp "$SRC" $HOME/tmp/history
sqlite3 -readonly $HOME/tmp/history "$Q"
rm $HOME/tmp/history

@ -0,0 +1,94 @@
FROM ubuntu:focal as builder
ENV DEBIAN_FRONTEND noninteractive
# this is the hash of solana-1.3.14
ENV VERSION c8f4bfca90e5087f77dd11921b75231c5fa30151
RUN apt update && apt install -y \
clang \
cmake \
curl \
git \
golang \
lcov \
libssl-dev \
libudev-dev \
llvm \
mscgen \
net-tools \
pkg-config \
rsync \
sudo \
zlib1g-dev \
unzip
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN . $HOME/.cargo/env && rustup component add rustfmt && rustup update
RUN git clone \
https://github.com/solana-labs/solana.git \
/usr/local/src/solana && \
cd /usr/local/src/solana && \
git checkout $VERSION
WORKDIR /usr/local/src/solana
RUN . $HOME/.cargo/env && cargo build --release
# kept crashing docker desktop, hard locks on OOM instead of doing
# something sensible. fuck closed source, proprietary software.
#RUN . $HOME/.cargo/env && cargo cargo test
#RUN . $HOME/.cargo/env rustup install nightly && cargo +nightly bench
RUN cd target/release && \
rm -f *.so *.d *.rlib && \
mv -v * /usr/local/bin
FROM ubuntu:focal as runner
COPY --from=builder /usr/local/bin/* /usr/local/bin/
ENV DEBIAN_FRONTEND noninteractive
ENV PATH $PATH:/usr/local/bin
RUN apt update && apt install -y \
runit \
runit-systemd
COPY ./supervise.sh /usr/local/sbin/supervise.sh
RUN mkdir -p /etc/service/solanad
COPY ./run.solanad /etc/service/solanad/run
RUN chmod +x /etc/service/*/run
#RUN solana transaction-count
#RUN solana-gossip spy --entrypoint devnet.solana.com:8001
RUN mkdir -p /var/lib/solana && chown nobody:nogroup /var/lib/solana
ENV HOME /var/lib/solana
WORKDIR /var/lib/solana
USER nobody:nogroup
ENV NETWORK_URL https://devnet.solana.com
#RUN solana config set --url http://devnet.solana.com
VOLUME /var/lib/solana
# rpc
EXPOSE 8899
# this daemon is stupid
EXPOSE 8000
EXPOSE 8001
EXPOSE 8002
EXPOSE 8003
EXPOSE 8004
EXPOSE 8005
EXPOSE 8005
EXPOSE 8006
EXPOSE 8007
EXPOSE 8008
EXPOSE 8009
EXPOSE 8010
USER root
WORKDIR /
CMD [ "/bin/sh", "/usr/local/sbin/supervise.sh" ]

@ -0,0 +1,5 @@
docker:
docker build --progress plain -t solanad .
run:
docker run -ti solanad

@ -0,0 +1,30 @@
#!/bin/bash
export HOME=/var/lib/solana
export PATH="$PATH:/usr/local/bin"
ASN="chpst -u nobody:nogroup"
cd $HOME
$ASN solana config set --url $NETWORK_URL
if [[ ! -e $HOME/validator-keypair.json ]]; then
$ASN solana-keygen new -o $HOME/validator-keypair.json
fi
$ASN solana-keygen pubkey ~/validator-keypair.json
if [[ ! -d $HOME/validator-ledger ]]; then
$ASN mkdir $HOME/validator-ledger
fi
exec $ASN \
solana-validator \
--identity $HOME/validator-keypair.json \
--trusted-validator dv1LfzJvDF7S1fBKpFgKoKXK5yoSosmkAdfbxBo1GqJ \
--no-untrusted-rpc \
--ledger $HOME/validator-ledger \
--rpc-port 8899 \
--entrypoint entrypoint.devnet.solana.com:8001 \
--expected-genesis-hash Ap36zrBt2jLWpwUjaF48hRULVgmvSE3ViFxiQgjZX2XC \
--log - \
--limit-ledger-size 2>&1

@ -0,0 +1,48 @@
#!/bin/sh
shutdown() {
echo "shutting down container"
# first shutdown any service started by runit
for _srv in $(ls -1 /etc/service); do
sv force-stop $_srv
done
# shutdown runsvdir command
kill -HUP $RUNSVDIR
wait $RUNSVDIR
# give processes time to stop
sleep 0.5
# kill any other processes still running in the container
for _pid in $(ps -eo pid | grep -v PID | tr -d ' ' | grep -v '^1$' | head -n -6); do
timeout -t 5 /bin/sh -c "kill $_pid && wait $_pid || kill -9 $_pid"
done
exit
}
# store enviroment variables
export > /etc/envvars
PATH=/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
# run all scripts in the run_once folder
#/bin/run-parts /etc/run_once
exec runsvdir -P /etc/service &
RUNSVDIR=$!
echo "Started runsvdir, PID is $RUNSVDIR"
echo "wait for processes to start...."
sleep 5
for _srv in $(ls -1 /etc/service); do
sv status $_srv
done
# catch shutdown signals
trap shutdown SIGTERM SIGHUP SIGQUIT SIGINT
wait $RUNSVDIR
shutdown
Loading…
Cancel
Save