Stabilize Hyperling.com (#21)
* Make the backup puller a full-fledged script after all. * Finish the main portion. * Remove version tag to avoid log errors on Docker 26.0, Compose 2.25.0. * Try moving to a smaller, faster, more stable image. * Move Nextcloud to the stable tag. * Add shortcut aliases. * Rename container website to www. * Do not install the latest of the PHP or Node programs if a version already exists in the container. * We need git!! * Try only git and the PHP interpretor. * Remove comments. * Install express at the image layer, not during runtime. * Let the app install express after all. * Remove warning about apt CLI. * Try to cache the express download/install. * Fix caching of Node packages.
This commit is contained in:
parent
1ef1903f6b
commit
fc7a5dc57d
@ -5,8 +5,6 @@
|
|||||||
# https://thekelleys.org.uk/dnsmasq/doc.html
|
# https://thekelleys.org.uk/dnsmasq/doc.html
|
||||||
#
|
#
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
container_name: dns-app
|
container_name: dns-app
|
||||||
|
@ -3,12 +3,18 @@
|
|||||||
|
|
||||||
# Using Debian testing so that we use PHP >8. Otherwise the shebangs from
|
# Using Debian testing so that we use PHP >8. Otherwise the shebangs from
|
||||||
# the include files (#!/usr/bin/php) show up on the website.
|
# the include files (#!/usr/bin/php) show up on the website.
|
||||||
FROM debian:testing
|
FROM node:lts-slim
|
||||||
|
|
||||||
# Install Dependencies
|
# Cache System Dependencies
|
||||||
RUN apt update && apt install -y sudo php-fpm nodejs npm
|
RUN apt-get update && apt-get install -y git php-cli
|
||||||
|
|
||||||
# Run Website
|
# Cache Node Dependencies
|
||||||
|
RUN mkdir -p /var/www/api
|
||||||
|
WORKDIR /var/www/api
|
||||||
|
RUN echo '{ "dependencies": { "express": "" } }' > package.json
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
# Install + Run Website
|
||||||
CMD cd /var/www/api && \
|
CMD cd /var/www/api && \
|
||||||
rm -rfv pages main.js run.sh && \
|
rm -rfv pages main.js run.sh && \
|
||||||
git clone https://github.com/Hyperling/Website website && \
|
git clone https://github.com/Hyperling/Website website && \
|
||||||
|
@ -2,11 +2,9 @@
|
|||||||
# Hyperling.com configuration.
|
# Hyperling.com configuration.
|
||||||
# 2023-01-24 container needs 128M to get started fully then settles to 25M.
|
# 2023-01-24 container needs 128M to get started fully then settles to 25M.
|
||||||
|
|
||||||
version: '2'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
container_name: website-app
|
container_name: www-app
|
||||||
build:
|
build:
|
||||||
context: ./
|
context: ./
|
||||||
network: host
|
network: host
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
# 2022-10-29
|
# 2022-10-29
|
||||||
# Hyperling.com configuration.
|
# Hyperling.com configuration.
|
||||||
|
|
||||||
version: '2'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
container_name: website-app
|
container_name: www-app
|
||||||
build:
|
build:
|
||||||
context: ./
|
context: ./
|
||||||
network: host
|
network: host
|
||||||
|
@ -18,8 +18,6 @@
|
|||||||
# 2024-01-23
|
# 2024-01-23
|
||||||
# Experimenting with how small a Nextcloud installation can survive.
|
# Experimenting with how small a Nextcloud installation can survive.
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
## MariaDB ##
|
## MariaDB ##
|
||||||
@ -74,7 +72,7 @@ services:
|
|||||||
## Nextcloud ##
|
## Nextcloud ##
|
||||||
nc-app:
|
nc-app:
|
||||||
container_name: nc-app
|
container_name: nc-app
|
||||||
image: nextcloud
|
image: nextcloud:stable
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 8080:80
|
- 8080:80
|
||||||
|
@ -16,8 +16,6 @@
|
|||||||
# to maintain and may allow the internal address to be based on container
|
# to maintain and may allow the internal address to be based on container
|
||||||
# name instead of the docker hosts's IP.
|
# name instead of the docker hosts's IP.
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
## MariaDB ##
|
## MariaDB ##
|
||||||
@ -75,7 +73,7 @@ services:
|
|||||||
## Nextcloud ##
|
## Nextcloud ##
|
||||||
nc-app:
|
nc-app:
|
||||||
container_name: nc-app
|
container_name: nc-app
|
||||||
image: nextcloud
|
image: nextcloud:stable
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- 8080:80
|
- 8080:80
|
||||||
|
@ -35,8 +35,6 @@
|
|||||||
# 2023-09-15: File created and tweaked based on 'https://dl.photoprism.app/docker/docker-compose.yml'.
|
# 2023-09-15: File created and tweaked based on 'https://dl.photoprism.app/docker/docker-compose.yml'.
|
||||||
##
|
##
|
||||||
|
|
||||||
version: '3.5'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
pp-app:
|
pp-app:
|
||||||
container_name: pp-app
|
container_name: pp-app
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
# https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/
|
# https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/
|
||||||
# https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71
|
# https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
app:
|
app:
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
# https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/
|
# https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/
|
||||||
# https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71
|
# https://pentacent.medium.com/nginx-and-lets-encrypt-with-docker-in-less-than-5-minutes-b4b8a60d3a71
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
app:
|
app:
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# 2024-01-29 Hyperling
|
|
||||||
# Example of how to pull the polled Backip.zip file. This would be placed on
|
|
||||||
# the machine holding the backups in the directory that it should land.
|
|
||||||
|
|
||||||
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
|
||||||
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
|
||||||
echo "$DIR/$PROG"
|
|
||||||
|
|
||||||
## Variables ##
|
|
||||||
|
|
||||||
DATE="`date '+%Y%m%d'`"
|
|
||||||
NEWFILE="$DIR/Backup_${DATE}.zip"
|
|
||||||
LATEST="`ls $DIR/Backup_*.zip | sort -r | head -n 1`"
|
|
||||||
|
|
||||||
## Main ##
|
|
||||||
|
|
||||||
echo "`date` - Creating '$NEWFILE'."
|
|
||||||
scp -P 4022 user@example.com:/tmp/Backup.zip $NEWFILE.tmp
|
|
||||||
mv -v $NEWFILE.tmp $NEWFILE
|
|
||||||
|
|
||||||
## Validation ##
|
|
||||||
|
|
||||||
# TBD: Can make this fancier, such as doing a real comparison for size growth.
|
|
||||||
|
|
||||||
echo "`date` - New backup's size:"
|
|
||||||
du -h $NEWFILE
|
|
||||||
|
|
||||||
echo "`date` - Previous backup's size:"
|
|
||||||
du -h $LATEST
|
|
||||||
|
|
||||||
## Finish ##
|
|
||||||
|
|
||||||
exit 0
|
|
75
bin/pull_backup.sh
Executable file
75
bin/pull_backup.sh
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# 2024-01-29 Hyperling
|
||||||
|
# Example of how to pull the polled Backip.zip file. This would be placed on
|
||||||
|
# the machine holding the backups in the directory that it should land.
|
||||||
|
|
||||||
|
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||||
|
PROG="$(basename -- "${BASH_SOURCE[0]}")"
|
||||||
|
echo "$DIR/$PROG"
|
||||||
|
|
||||||
|
## Variables ##
|
||||||
|
|
||||||
|
DATE="`date '+%Y%m%d'`"
|
||||||
|
NEWFILE="$DIR/Backup_${DATE}.zip"
|
||||||
|
PREVIOUS="`ls $DIR/Backup_*.zip | sort -r | head -n 1`"
|
||||||
|
|
||||||
|
## Functions ##
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
echo -e "Usage: $PROG -d DESTINATION [-u USER] [-p PORT] [-h]\n"
|
||||||
|
cat <<- EOF
|
||||||
|
Download the latest Backup.zip from a Hyperling/Docker type project. The
|
||||||
|
file is downloaded to the directory that this file exists in, so that it
|
||||||
|
can be conveniently kept with the backups themselves.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
-d : The server name or IP address running hhe Docker instance.
|
||||||
|
-u : Username to connect as. Default LOGNAME, currently '$LOGNAME'.
|
||||||
|
-p : Port to connect through. Defaults to 22.
|
||||||
|
-h : Display this usage text.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
## Parameters ##
|
||||||
|
|
||||||
|
port=22
|
||||||
|
user="$LOGNAME"
|
||||||
|
while getopts ':d:u:p:h' opt; do
|
||||||
|
case "$opt" in
|
||||||
|
d) destination="$OPTARG" ;;
|
||||||
|
u) user="$OPTARG" ;;
|
||||||
|
p) port="$OPTARG" ;;
|
||||||
|
h) usage 0 ;;
|
||||||
|
*) echo "ERROR: Parameter '$OPTARG' not recognized." >&2
|
||||||
|
usage 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
## Validations ##
|
||||||
|
|
||||||
|
if [[ -z $destination ]]; then
|
||||||
|
echo "ERROR: Destination was not provided." >&2
|
||||||
|
usage 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Main ##
|
||||||
|
|
||||||
|
echo "`date` - Creating '$NEWFILE'."
|
||||||
|
scp -P $port "$user@[$destination]":/tmp/Backup.zip $NEWFILE.tmp
|
||||||
|
mv -v $NEWFILE.tmp $NEWFILE
|
||||||
|
|
||||||
|
## Validation ##
|
||||||
|
|
||||||
|
# TBD: Can make this fancier, such as doing a real comparison for size growth.
|
||||||
|
|
||||||
|
echo "`date` - New backup's size:"
|
||||||
|
du -h $NEWFILE
|
||||||
|
|
||||||
|
if [[ -n $PREVIOUS ]]; then
|
||||||
|
echo "`date` - Previous backup's size:"
|
||||||
|
du -h $PREVIOUS
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Finish ##
|
||||||
|
|
||||||
|
exit 0
|
@ -24,6 +24,10 @@ export DOCKER_HOME DOCKER_PATH PATH
|
|||||||
|
|
||||||
alias manage="$DOCKER_HOME/bin/manage.sh"
|
alias manage="$DOCKER_HOME/bin/manage.sh"
|
||||||
|
|
||||||
|
alias Docker="cd $DOCKER_HOME"
|
||||||
|
alias Config="cd $DOCKER_HOME/Config"
|
||||||
|
alias Volumes="cd $DOCKER_HOME/Volumes"
|
||||||
|
|
||||||
## Validations ##
|
## Validations ##
|
||||||
|
|
||||||
if [[ -e $DOCKER_HOME/$PROG ]]; then
|
if [[ -e $DOCKER_HOME/$PROG ]]; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user