add chrome history slurper and solana dockerfile
This commit is contained in:
parent
b93b7d52f7
commit
985d7f735a
|
@ -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…
Reference in New Issue