Forked from
DevOps (Lecture FB VI) / webservice
This fork has diverged from the upstream repository.
setup-local.sh 1.53 KiB
#!/bin/bash
IMAGE_NAME="registry.bht-berlin.de:443/masi9606/webservice:dev"
CONTAINER_NAME="webservice_container"
CONTAINER_HTTP_PORT="8080"
CONTAINER_HTTPS_PORT="8443"
NGINX_CONF="/etc/nginx/sites-available/default"
CERT_DIR="/etc/nginx/certs"
DOMAIN_NAME="webservice.local"
# Stop old containers
podman stop $CONTAINER_NAME
podman rm -f $CONTAINER_NAME
# Pull image
podman pull $IMAGE_NAME
# Run container on both ports
podman run -d -p $CONTAINER_HTTP_PORT:$CONTAINER_HTTP_PORT -p $CONTAINER_HTTPS_PORT:$CONTAINER_HTTPS_PORT --name $CONTAINER_NAME $IMAGE_NAME
# Install packages
podman exec -it $CONTAINER_NAME apt-get update
podman exec -it $CONTAINER_NAME apt-get install -y openssl nginx systemctl curl
# Generate SSL certificate and key
podman exec -it $CONTAINER_NAME bash -c "mkdir -p $CERT_DIR && \
openssl req -x509 -nodes -days 365 -newkey rsa:4096 \
-keyout $CERT_DIR/nginx.key -out $CERT_DIR/nginx.crt \
-subj '/CN=$DOMAIN_NAME'"
podman cp default.conf $CONTAINER_NAME:$NGINX_CONF
# Restart Nginx to apply the changes
podman exec -it $CONTAINER_NAME systemctl restart nginx
# Wait
podman exec -it $CONTAINER_NAME sleep 5
# Add entry to /etc/hosts
podman exec -it $CONTAINER_NAME bash -c "echo '127.0.0.1 webservice.local' >> /etc/hosts"
echo "Setup complete..."
echo "Testing from inside..."
podman exec -it $CONTAINER_NAME curl -k https://$DOMAIN_NAME:$CONTAINER_HTTPS_PORT/
echo "Testing from outside..."
sudo bash -c "echo '127.0.0.1 webservice.local' >> /etc/hosts"
curl -k https://$DOMAIN_NAME:$CONTAINER_HTTPS_PORT/