-
-
Save abrkn/ef10322c3a84f5959d01 to your computer and use it in GitHub Desktop.
systemd unit for bitcoind
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Unit] | |
Description=bitcoind | |
Requires=docker.service | |
[Service] | |
WorkingDirectory=/root | |
TimeoutStartSec=0 | |
# Kill and rm leftover containers | |
ExecStartPre=-/bin/docker pull abrkn/bitcoind | |
ExecStartPre=-/bin/docker pull abrkn/ebs-sidekick | |
ExecStartPre=-/bin/docker pull abrkn/elb-sidekick | |
ExecStartPre=-/bin/docker kill bitcoind bitcoind-ebs bitcoind-elb | |
ExecStartPre=-/bin/docker rm bitcoind bitcoind-ebs bitcoind-elb | |
# Attach EBS volume | |
ExecStartPre=/bin/bash -c "\ | |
docker run \ | |
-d \ | |
--name bitcoind-ebs \ | |
--env AWS_ACCESS_KEY_ID=$(etcdctl get /aws_key) \ | |
--env AWS_SECRET_ACCESS_KEY=$(etcdctl get /aws_secret) \ | |
--env VOLUME_ID=$(etcdctl get /bitcoind_volume_id) \ | |
--env DEVICE=/dev/sdf \ | |
--env AWS_DEFAULT_REGION=eu-west-1 \ | |
abrkn/ebs-sidekick ; \ | |
sleep 10 ; \ | |
mkdir -p /bitcoind ; \ | |
[ -z $(lsblk | grep -qs ^xvdf )] && mount /dev/xvdf /bitcoind \ | |
" | |
# Run bitcoind container | |
ExecStart=/bin/docker run \ | |
-v /bitcoind:/data \ | |
-p 8332:8332 \ | |
--name bitcoind \ | |
abrkn/bitcoind | |
# Register to ELB | |
ExecStartPost=/bin/bash -c "\ | |
docker run \ | |
-d \ | |
--name bitcoind-elb \ | |
--env AWS_ACCESS_KEY_ID=$(etcdctl get /aws_key) \ | |
--env AWS_SECRET_ACCESS_KEY=$(etcdctl get /aws_secret) \ | |
--env ELB_NAME=jc-testing-bitcoind \ | |
--env AWS_DEFAULT_REGION=eu-west-1 \ | |
abrkn/elb-sidekick \ | |
" | |
# Deregister from ELB | |
ExecStop=/bin/docker stop -t 30 bitcoind-elb | |
ExecStop=/bin/docker stop -t 60 bitcoind | |
# Detach EBS volume | |
ExecStopPost=/bin/bash -c "\ | |
docker stop bitcoind ; \ | |
umount /bitcoind ; \ | |
docker stop bitcoind-ebs \ | |
" | |
[Install] | |
WantedBy=multi-user.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment