2 Commits

Author SHA1 Message Date
Craig Osterhout
19fcd9532b feedback
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
2026-01-26 14:19:24 -08:00
Craig Osterhout
7519a5d7aa update app to remove vulns
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
2026-01-21 09:36:28 -08:00
6 changed files with 3368 additions and 3434 deletions

View File

@@ -1,34 +0,0 @@
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 }}

View File

@@ -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
View File

@@ -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
Heres 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 GitHubs 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!

3349
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -4,30 +4,25 @@
"main": "index.js", "main": "index.js",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"prettify": "prettier -l --write \"**/*.js\"",
"test": "jest",
"dev": "nodemon -L src/index.js" "dev": "nodemon -L src/index.js"
}, },
"dependencies": { "dependencies": {
"express": "^4.18.2", "express": "^5.2.1",
"mysql2": "^2.3.3", "mysql2": "^3.16.1",
"sqlite3": "^5.1.2", "sqlite3": "^5.1.7",
"uuid": "^9.0.0", "uuid": "^13.0.0",
"wait-port": "^1.0.4" "wait-port": "^1.1.0"
},
"resolutions": {
"ansi-regex": "5.0.1"
},
"prettier": {
"trailingComma": "all",
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true
}, },
"devDependencies": { "devDependencies": {
"jest": "^29.3.1", "nodemon": "^3.1.9"
"nodemon": "^2.0.20", },
"prettier": "^2.7.1" "overrides": {
"tar": "7.5.4",
"glob": "11.1.0",
"semver": "7.5.2",
"cross-spawn": "7.0.5",
"braces": "3.0.3",
"http-cache-semantics": "4.1.1",
"socks": "2.8.1"
} }
} }

3275
yarn.lock

File diff suppressed because it is too large Load Diff