feat: Выполнил практическое задание по DevOps
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
backup.sh
|
||||
docker-compose.yaml
|
||||
ssl/
|
||||
*.key
|
||||
*.pem
|
||||
*.crt
|
||||
backups/
|
||||
*.tar
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
@@ -0,0 +1,12 @@
|
||||
# FROM nginxinc/nginx-unprivileged:1.29.8-alpine3.23-slim@sha256:59678856b05324b7f6371f26eb1520be7fcd8bdc8ab380fc4913db8503e5a842
|
||||
FROM nginx:1.29.6-alpine3.23-slim@sha256:c8eb3bb3009bb98c04480e11405f5b4d38adbd0bf6df5f5e6ff552b236576331
|
||||
|
||||
COPY --chown=nginx:nginx nginx.conf /etc/nginx/nginx.conf
|
||||
COPY --chown=nginx:nginx index.html /usr/share/nginx/html/index.html
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||
CMD wget -q --spider http://127.0.0.1:8080 || exit 1
|
||||
|
||||
USER nginx
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
BACKUP_DIR="/opt/nginx/backups"
|
||||
CONTAINER="nginx"
|
||||
DATE=$(date -u +"%Y-%m-%d_%H-%M-%S")
|
||||
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
TMP_DIR=$(mktemp -d)
|
||||
|
||||
docker cp "${CONTAINER}:/etc/nginx" "$TMP_DIR/nginx"
|
||||
|
||||
tar -czf "${BACKUP_DIR}/nginx_${DATE}.tar.gz" \
|
||||
-C "$TMP_DIR" nginx
|
||||
|
||||
rm -rf "$TMP_DIR"
|
||||
@@ -0,0 +1,13 @@
|
||||
services:
|
||||
nginx:
|
||||
image: simbir-nginx:1.29.6
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- "80:8080"
|
||||
- "443:8443"
|
||||
restart: "unless-stopped"
|
||||
container_name: nginx
|
||||
volumes:
|
||||
- /opt/nginx/ssl:/etc/nginx/ssl:ro
|
||||
@@ -0,0 +1,20 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Hello DevOps world!
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Hello DevOps world!</h2><br>
|
||||
<h3 id="time"></h3>
|
||||
<script>
|
||||
setInterval(() => {
|
||||
document.getElementById("time").textContent =
|
||||
new Date().toLocaleTimeString("ru-RU", {
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit"
|
||||
});
|
||||
}, 1000);
|
||||
</script>
|
||||
</body></html>
|
||||
@@ -0,0 +1,24 @@
|
||||
pid /tmp/nginx.pid;
|
||||
user nginx;
|
||||
events {}
|
||||
|
||||
http {
|
||||
client_body_temp_path /tmp/client_temp;
|
||||
proxy_temp_path /tmp/proxy_temp;
|
||||
fastcgi_temp_path /tmp/fastcgi_temp;
|
||||
uwsgi_temp_path /tmp/uwsgi_temp;
|
||||
scgi_temp_path /tmp/scgi_temp;
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8443 ssl;
|
||||
root /usr/share/nginx/html;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/cert.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/key.pem;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user