diff --git a/.gitea/workflows/build_and_deploy.yml b/.gitea/workflows/build_and_deploy.yml deleted file mode 100644 index aa40d8d..0000000 --- a/.gitea/workflows/build_and_deploy.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Build and Deploy - -on: - push: - branches: - - main - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Clone the repository - uses: actions/checkout@v3 - - - name: Set up Docker - uses: docker/setup-buildx-action@v2 - - - name: Log in to Docker Hub - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - - - name: Build and Push Docker Image - run: | - docker build -t your-dockerhub-username/formies-combined . - docker tag your-dockerhub-username/formies-combined:latest - docker push your-dockerhub-username/formies-combined:latest - - - name: Deploy to Server (optional) - run: | - ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_IP }} << 'EOF' - docker pull your-dockerhub-username/formies-combined:latest - docker stop formies || true - docker rm formies || true - docker run -d --name formies -p 8080:8080 your-dockerhub-username/formies-combined:latest - EOF diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml new file mode 100644 index 0000000..fa8633f --- /dev/null +++ b/.gitea/workflows/docker-build.yml @@ -0,0 +1,31 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - prod + +jobs: + build_and_push: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install Docker + run: | + sudo apt-get update + sudo apt-get install -y docker.io + + - name: Build Docker image + run: | + docker build -t git.vinylnostalgia.com/${{ secrets.GITEA_USERNAME }}/formies:latest . + + - name: Push Docker image to Gitea Registry + env: + GITEA_USERNAME: ${{ secrets.RUNNER_USERNAME }} + GITEA_PASSWORD: ${{ secrets.GITEA_PASSWORD }} + run: | + echo $GITEA_PASSWORD | docker login gitea.example.com -u $GITEA_USERNAME --password-stdin + docker push git.vinylnostalgia.com/$GITEA_USERNAME/formies:latest diff --git a/Dockerfile b/Dockerfile index e6eeabc..54882e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,51 +1,20 @@ -# Stage 1: Build Frontend +# Stage 1: Build the Svelte frontend FROM node:18 as frontend-builder - -WORKDIR /frontend - -# Copy frontend package files -COPY frontend/package.json frontend/package-lock.json ./ +WORKDIR /app/frontend +COPY frontend/ . RUN npm install - -# Copy the rest of the frontend source code -COPY frontend ./ - -# Build the frontend RUN npm run build -# Stage 2: Build Backend -FROM rust:1.72 as backend-builder - -WORKDIR /backend - -# Copy backend files -COPY backend/Cargo.toml backend/Cargo.lock ./ -RUN mkdir src && echo "fn main() {}" > src/main.rs +# Stage 2: Build the Rust backend +FROM rust:1.73 as backend-builder +WORKDIR /app/backend +COPY backend/ . RUN cargo build --release -# Copy the actual backend source code -COPY backend/src ./src -RUN cargo build --release - -# Stage 3: Combine and Serve +# Final Stage: Combine frontend and backend FROM debian:bullseye-slim - -# Install dependencies for running Rust binaries -RUN apt-get update && apt-get install -y libssl-dev && rm -rf /var/lib/apt/lists/* - WORKDIR /app - -# Copy backend binary -COPY --from=backend-builder /backend/target/release/backend . - -# Copy frontend static files -COPY --from=frontend-builder /frontend/public ./frontend/public - -# Expose port +COPY --from=frontend-builder /app/frontend/build ./frontend/dist +COPY --from=backend-builder /app/backend/target/release/backend ./backend EXPOSE 8080 - -# Run the backend (serving static files and API) CMD ["./backend"] - -#docker build -t your-dockerhub-username/formies-combined . -#docker push your-dockerhub-username/formies-combined:latest