mirror of
https://github.com/docker/getting-started-app.git
synced 2024-12-22 23:30:50 -05:00
Compare commits
No commits in common. "a9987fa960cb5a3cfbd77370fb74ad180f830a92" and "1b8da5acb70df75b96001cb2095c3c61d7b598c1" have entirely different histories.
a9987fa960
...
1b8da5acb7
@ -1,7 +0,0 @@
|
|||||||
FROM node:18-alpine
|
|
||||||
WORKDIR /app
|
|
||||||
COPY . .
|
|
||||||
RUN yarn install --production && yarn cache clean
|
|
||||||
ENTRYPOINT [ "node" ]
|
|
||||||
CMD [ "src/index.js" ]
|
|
||||||
EXPOSE 3000
|
|
100
README.md
100
README.md
@ -1,99 +1,5 @@
|
|||||||
|
# Getting started
|
||||||
|
|
||||||
# Getting Started
|
This repository is a sample application for users following the getting started guide at https://docs.docker.com/get-started/.
|
||||||
|
|
||||||
This repository is a sample application for users following the [Getting Started guide](https://docs.docker.com/get-started/) on Docker's official documentation.
|
The application is based on the application from the getting started tutorial at https://github.com/docker/getting-started
|
||||||
|
|
||||||
The application is based on the tutorial at [docker/getting-started](https://github.com/docker/getting-started).
|
|
||||||
|
|
||||||
## Getting Started App with Docker CI/CD
|
|
||||||
|
|
||||||
This project demonstrates how to build, test, and deploy a Dockerized application using GitHub Actions for CI/CD.
|
|
||||||
|
|
||||||
### How to Fork and Set Up
|
|
||||||
|
|
||||||
1. **Fork the repository:**
|
|
||||||
- Go to the [docker/getting-started-app](https://github.com/docker/getting-started-app) and fork the repository to your GitHub account.
|
|
||||||
|
|
||||||
2. **Set the remote URL:**
|
|
||||||
- After forking, change the remote URL to your repository in the terminal:
|
|
||||||
```bash
|
|
||||||
git remote set-url origin https://github.com/abohmeed/getting-started-app.git
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **View the Dockerfile:**
|
|
||||||
- In the terminal, view the Dockerfile:
|
|
||||||
```bash
|
|
||||||
cat Dockerfile
|
|
||||||
```
|
|
||||||
|
|
||||||
### Dockerfile
|
|
||||||
|
|
||||||
Here’s the `Dockerfile` included in this project:
|
|
||||||
|
|
||||||
```dockerfile
|
|
||||||
FROM node:18-alpine
|
|
||||||
WORKDIR /app
|
|
||||||
COPY . .
|
|
||||||
RUN yarn install --production && yarn cache clean
|
|
||||||
ENTRYPOINT [ "node" ]
|
|
||||||
CMD [ "src/index.js" ]
|
|
||||||
EXPOSE 3000
|
|
||||||
```
|
|
||||||
|
|
||||||
### GitHub Actions CI/CD Workflow
|
|
||||||
|
|
||||||
This project includes a GitHub Actions workflow for automatically building and pushing Docker images to the GitHub Container Registry.
|
|
||||||
|
|
||||||
#### Workflow File
|
|
||||||
|
|
||||||
The `.github/workflows/docker-image.yml` file contains the CI/CD pipeline:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: Docker Image CI
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Log in to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.repository_owner }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
ghcr.io/${{ github.repository_owner }}/abohmeed/getting-started:latest
|
|
||||||
ghcr.io/${{ github.repository_owner }}/abohmeed/getting-started:${{ github.sha }}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Workflow Steps:
|
|
||||||
|
|
||||||
- **Checkout code:** Fetches the repository content.
|
|
||||||
- **Set up Docker Buildx:** Prepares Docker Buildx for multi-platform builds.
|
|
||||||
- **Log in to GitHub Container Registry:** Authenticates the Docker client with GitHub’s Container Registry.
|
|
||||||
- **Build and push:** Builds the Docker image and pushes it to the GitHub Container Registry with two tags: `latest` and the commit SHA.
|
|
||||||
|
|
||||||
### Conclusion
|
|
||||||
|
|
||||||
This setup allows you to continuously integrate and deploy Docker images to the GitHub Container Registry. Simply push or open a pull request to the `main` branch, and the workflow will handle the rest!
|
|
Loading…
Reference in New Issue
Block a user