2 Commits

Author SHA1 Message Date
Sweetbread 3a5e991870 sec: add production server
Docker Build and Push / build-and-push (push) Successful in 1m31s
2025-08-07 21:18:49 +03:00
Sweetbread 5da241b62e ci: add docker-build 2025-08-07 21:16:59 +03:00
4 changed files with 53 additions and 8 deletions
+33
View File
@@ -0,0 +1,33 @@
name: Docker Build and Push
on:
push:
branches: [master]
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to Docker Registry
uses: docker/login-action@v2
with:
registry: g.codrs.ru
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name == 'push' }}
tags: |
g.codrs.ru/${{ vars.DOCKER_USERNAME }}/codrs.ru:latest
g.codrs.ru/${{ vars.DOCKER_USERNAME }}/codrs.ru:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
+16 -7
View File
@@ -1,14 +1,23 @@
FROM python:3.11-slim
FROM node:18-alpine as sass
RUN apt-get update && apt-get install -y curl && \
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs && \
npm install -g sass && \
apt-get clean && rm -rf /var/lib/apt/lists/*
RUN NODE_OPTIONS=--dns-result-order=ipv4first npm install -g sass
WORKDIR /build
COPY ./static/style ./style
RUN sass ./style:./style \
--no-source-map \
--style=compressed
FROM python:3.11-slim
WORKDIR /app
COPY . .
COPY --from=sass /build/style/ ./static/style/
RUN pip install --no-cache-dir -r requirements.txt
CMD flask run
ENV FLASK_ENV=production
ENV PYTHONUNBUFFERED=1
CMD ["gunicorn", "app:app", "-b", "0.0.0.0:80", "--workers", "4"]
+3 -1
View File
@@ -2,7 +2,9 @@ from os import system as console
from flask import Flask, render_template
app = Flask(__name__)
console("sass static/style/main.scss static/style/main.css")
if app.debug:
console("sass static/style/main.scss static/style/main.css")
@app.route("/")
def index():
+1
View File
@@ -1 +1,2 @@
Flask==3.1.1
gunicorn