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