name: Deploy to Production on: push: branches: - prod jobs: deploy: runs-on: [docker:host] steps: - name: Checkout code uses: actions/checkout@v3 - name: Build Docker image run: | docker build -t olaper:latest . - name: Stop old container (if running) run: | if [ "$(docker ps -q -f name=olaper)" ]; then docker stop olaper && docker rm olaper fi - name: Run new container run: | PORT=5005 CONTAINER_ID=$(docker ps --format '{{.ID}} {{.Ports}}' | grep ":$PORT->" | awk '{print $1}') if [ -n "$CONTAINER_ID" ]; then echo "Stopping container using port $PORT..." docker stop "$CONTAINER_ID" docker rm "$CONTAINER_ID" fi docker run -d \ --name olaper \ --restart always \ -p ${PORT}:5005 \ -e SECRET_KEY=${{ secrets.SECRET_KEY }} \ -e ENCRYPTION_KEY=${{ secrets.ENCRYPTION_KEY }} \ -v mholaper_data:/app/data \ olaper:latest