Skip to content

Commit 9fb68d0

Browse files
author
mike dupont
committed
feature aws
1 parent 6e1ef2c commit 9fb68d0

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed

rundocker.sh

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/bash
2+
# this is the install script
3+
# install_script = "/opt/eliza/rundocker.sh"
4+
# called on boot.
5+
pwd
6+
ls -latr
7+
. ./.env # for secrets
8+
set -e # stop on any error
9+
export WORKSOURCE="/opt/eliza"
10+
aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 916723593639.dkr.ecr.us-east-2.amazonaws.com
11+
adduser --disabled-password --gecos "" eliza --home "/home/eliza" || echo ignore
12+
git config --global --add safe.directory "/opt/eliza"
13+
git config --global --add safe.directory "/opt/eliza-memory"
14+
cd "/opt/agent/" || exit 1 # "we need agent"
15+
git log -2 --patch | head -1000
16+
mkdir -p "/home/agent"
17+
mkdir -p "/var/agent/logs"
18+
chown -R agent:agent "/var/agent/" "/home/agent" "/opt/agent"
19+
mkdir -p "/var/run/agent/secrets/"
20+
mkdir -p "/home/agent/.cache/huggingface/hub"
21+
22+
## TURN OFF LOGGING
23+
set +x
24+
OPENAI_KEY=$(aws ssm get-parameter --name "agent_openai_key" | jq .Parameter.Value -r )
25+
export OPENAI_KEY
26+
echo "OPENAI_KEY=${OPENAI_KEY}" > "/var/run/agent/secrets/env"
27+
echo "OPENAI_API_KEY=${OPENAI_KEY}" >> "/var/run/agent/secrets/env"
28+
set -x
29+
## TURN ON LOGGING
30+
31+
if ! grep -q "HF_HOME" "/var/run/agent/secrets/env"; then
32+
echo "HF_HOME=/home/agent/.cache/huggingface/hub" >> "/var/run/agent/secrets/env"
33+
fi
34+
if ! grep -q "^HOME" "/var/run/agent/secrets/env"; then
35+
echo "HOME=/home/agent" >> "/var/run/agent/secrets/env"
36+
fi
37+
if ! grep -q "^HOME" "/var/run/agent/secrets/env"; then
38+
echo "WORKSPACE_DIR=\${STATE_DIRECTORY}" >> "/var/run/agent/secrets/env"
39+
fi
40+
cp "${WORKSOURCE}/systemd/agent-docker.service" /etc/systemd/system/agent-docker.service
41+
grep . -h -n /etc/systemd/system/agent-docker.service
42+
chown -R agent:agent /var/run/agent/
43+
chown -R agent:agent /opt/agent/
44+
systemctl daemon-reload
45+
systemctl start agent-docker || echo failed
46+
systemctl enable agent-docker || echo failed
47+
systemctl status agent-docker || echo oops2

systemd/agent-docker.service

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# derived from https://phil.lavin.me.uk/2021/12/running-docker-containers-from-aws-ecr-with-systemd/
2+
# derived from https://github.com/encode/uvicorn/issues/678
3+
# derived from https://blog.container-solutions.com/running-docker-containers-with-systemd
4+
5+
[Unit]
6+
Description=agent
7+
After=docker.service
8+
Requires=docker.service
9+
StartLimitInterval=200
10+
StartLimitBurst=10
11+
12+
[Service]
13+
EnvironmentFile=/var/run/agent/secrets/env
14+
RestartSec=10
15+
TimeoutStartSec=0
16+
Restart=always
17+
18+
ExecStartPre=-/usr/bin/docker exec %n stop || echo cannot prestop
19+
ExecStartPre=-/usr/bin/docker rm %n || echo cannot preremove
20+
21+
#FIXME hardcoded aws id
22+
ExecStartPre=/usr/bin/bash -c 'docker login -u AWS -p $(aws ecr get-login-password --region us-east-2) 767503528736.dkr.ecr.us-east-2.amazonaws.com'
23+
ExecStartPre=/usr/bin/docker pull 767503528736.dkr.ecr.us-east-2.amazonaws.com/agent/eliza:dev
24+
25+
ExecStart=/usr/bin/docker run -p 3000:3000 -w /var/agent/agent_workspace/ --mount type=bind,source=/opt/agent,target=/opt/agent --env-file /var/run/agent/secrets/env -e WORKSPACE_DIR=/var/agent/agent_workspace/ --rm --name %n 767503528736.dkr.ecr.us-east-2.amazonaws.com/agent/eliza:dev
26+
27+
# FIXME: update cloudwatch logs
28+
StandardOutput=file:/var/log/agent_systemd.log
29+
StandardError=file:/var/log/agent_systemd.log
30+
ExecReload=/bin/kill -HUP ${MAINPID}
31+
32+
Restart=always
33+
34+
[Install]
35+
WantedBy=multi-user.target
36+

0 commit comments

Comments
 (0)