Newer
Older
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"
WEB_SERVICE_DOMAIN="webservice.local"
# prometheus container
PROMETHEUS_IMAGE="prom/prometheus:latest"
PROMETHEUS_CONTAINER_NAME="prometheus_monitor"
PROMETHEUS_PORT="9090"
PROMETHEUS_DOMAIN="monitoring.local"
PROMETHEUS_CONFIG_FILE="prometheus.yml"
# local network
NETWORK_NAME="dev_network"
# Stop old containers
podman stop $CONTAINER_NAME
podman rm -f $CONTAINER_NAME
podman stop $PROMETHEUS_CONTAINER_NAME
podman rm -f $PROMETHEUS_CONTAINER_NAME
# Run webservice container
podman run -d \
--name "$CONTAINER_NAME" \
--network "$NETWORK_NAME" \
--ip "10.89.0.2" \
-p "$CONTAINER_HTTP_PORT:$CONTAINER_HTTP_PORT" \
-p "$CONTAINER_HTTPS_PORT:$CONTAINER_HTTPS_PORT" \
"$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 \
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 $WEB_SERVICE_DOMAIN' >> /etc/hosts"
podman exec -it $CONTAINER_NAME curl -k https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/
sudo bash -c "echo '127.0.0.1 $WEB_SERVICE_DOMAIN' >> /etc/hosts"
curl -k https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/
curl -k -X PUT --header 'Content-Type: text/plain; charset=utf-8' --data 'foo' https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/state/bar
podman exec -it $CONTAINER_NAME redis-cli KEYS '*'
# Run Prometheus container
podman run -d \
--name $PROMETHEUS_CONTAINER_NAME \
--network $NETWORK_NAME --ip "10.89.0.3" \
-p $PROMETHEUS_PORT:$PROMETHEUS_PORT \
-v $PWD/$PROMETHEUS_CONFIG_FILE:/etc/prometheus/prometheus.yml:Z \
$PROMETHEUS_IMAGE --config.file=/etc/prometheus/prometheus.yml
# Test Prometheus
sudo bash -c "echo '127.0.0.1 $PROMETHEUS_DOMAIN' >> /etc/hosts"
curl http://$PROMETHEUS_DOMAIN:$PROMETHEUS_PORT/