ci cd
1. Version Control System:
2. Dockerize Your Application:
FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]- For more complex applications, consider using container orchestration tools like Kubernetes or Docker Swarm to manage and scale your containers.name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Build Docker Image
run: |
docker build -t my-app:${{ github.sha }} .
docker tag my-app:${{ github.sha }} my-app:latest
- name: Login to Docker Hub
run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
- name: Push Docker Image
run: |
docker push my-app:${{ github.sha }}
docker push my-app:latest
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to Production
run: |
# Use your deployment script or tool here
echo "Deploying to production..."