Skip to content

mw866/petstore-api

Repository files navigation

PetStore API

Create new releases CI Security scan

Overview

This is a Petstore API service generated by swagger-codegen

Manually generate node server code

swagger-codegen generate -i api/openapi.yaml -l nodejs-server 

Build the Docker image

Automated build

See https://hub.docker.com/r/mw866/petstore-api

GitHub Actions takes care of the multi-platform build.

Manual build

docker build -t mw866/petstore-api:latest .

Step 1 - Install buildx.

Step 2 - Create the buildx builder instance.

docker buildx create --use

Step 3 - Check the runtime supported.

docker buildx inspect --bootstrap

Step 4 - Build and publish the image

export TAG=$(jq -r .version package.json)
docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --tag mw866/petstore-api:$TAG --tag mw866/petstore-api:latest .

Running the server locally

With Docker

docker run mw866/petstore-api -p 8080:8080

Without Docker

To run the server, run:

npm start

Publish application using cloudflared and docker-compose

  1. Install cloudflared
  2. Run cloudflared login
  3. Update the values in .env.example and rename it to .env.
  4. Install Docker Engine and docker-compose
  5. Run docker-compose up

If you see the error message like cloudflared | Error getting origin cert: cannot check if origin cert exists at path /.cloudflared/cert.pem, it's because of the non-privileged user in the cloudflared Docker image. See this issue for solution.

Reference

Dockerizing a Node.js web app

Publishing Docker images using GitHub Actions (outdated)

Building and testing Node.js