mirror of
https://github.com/coderofsalvation/podi.git
synced 2026-02-24 12:12:09 +01:00
57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
# info: containerized stack, nice startingpoint using docker-compose.yml
|
|
|
|
export POD=$(which podman-compose || which docker-compose)
|
|
|
|
build(){
|
|
header .pod/app/container-compose
|
|
test -f docker-compose.yml || { print "'docker-compose.yml' not found..skipping build"; }
|
|
test -f docker-compose.yml && {
|
|
silent which $POD || print '[!] please install podman-compose (or docker-compose)'
|
|
silent which $POD && verbose $POD build
|
|
} | soften
|
|
return 0
|
|
}
|
|
|
|
stop(){
|
|
test -z $POD || verbose $POD down -t 2 2>/dev/null
|
|
}
|
|
|
|
start(){
|
|
header .pod/app/container
|
|
silent which $POD || error "please install podman-compose (or docker-compose)"
|
|
test -z $POD || {
|
|
export PODI_APP=$PODI_APP
|
|
eval "$(cat .env)"
|
|
verbose $POD up -d --force-recreate
|
|
verbose $POD logs
|
|
print ""
|
|
print "your container(s) is running at $PODI_REMOTE:$PORT"
|
|
}
|
|
return 0
|
|
}
|
|
|
|
init_runtime(){
|
|
test -f docker-compose.yml || {
|
|
generate(){
|
|
echo 'version: "3.9"'
|
|
echo 'services:'
|
|
echo ' web:'
|
|
echo ' image: docker.io/coderofsalvation/redbean:1.5'
|
|
echo ' command: /redbean.com -D /app'
|
|
echo ' volumes:'
|
|
echo ' - .:/app'
|
|
echo ' ports:'
|
|
echo ' - "${PORT}:8080"'
|
|
}
|
|
PORT=$(awk 'BEGIN{ srand(); print int(rand()*1000)+8000 }')
|
|
prompt "generate + commit 'docker-compose.yml' file?" "$(generate | soften)" "[y/n] "
|
|
generate > docker-compose.yml
|
|
test $answer = "y" || error aborting
|
|
echo "export PORT=$PORT" >> .env
|
|
git add docker-compose.yml .env .pod podi && git commit -m "adding podi"
|
|
}
|
|
test -f .pod/checkout/rollback_simple || recipe checkout/rollback_simple
|
|
test -f .pod/start/envfile || recipe start/envfile
|
|
test -f .pod/init/server/sshkey || recipe init/server/sshkey
|
|
}
|