Dockerizing brX GraphQL Service
Introduction
The brX GraphQL Service project includes an example Dockerfile and docker-compose.yml file for Docker-based software packaging, deployment, and managing scalable containers. These examples can be used as-is or customized for your own requirements.
Default Example Dockerfile
The default example Dockerfile looks as follows:
FROM node:alpine COPY . /app WORKDIR /app RUN npm install && npm run build EXPOSE 4000 ENTRYPOINT ["npm", "run"] CMD ["start"]
You can customize the script (e.g, port number to expose) if necessary.
You can build a Docker image of the brX GraphQL Service as follows:
docker build -t bloomreach/brx-apollo-server:latest .
The above command will build a Docker image with the tag, "bloomreach/brx-apollo-server:latest", for example.
You can run the Docker image like the following example, publishing a container’s port, 4000, to the host's port, 4000:
docker run -p4000:4000 bloomreach/brx-apollo-server:latest
Default Example Docker Composition
The default example docker-compose.yml looks as follows:
version: '3.7' services: graphql-commerce-connector-service: build: context: . container_name: graphql-commerce-connector-service image: bloomreach/graphql-commerce-connector-service:latest ports: - '4000:4000' environment: NODE_ENV=production APOLLO_INTROSPECTION=false APOLLO_PLAYGROUND=false LOG_LEVEL=info BRSM_API=https://core.dxpapi.com/api BRSM_SUGGEST_API=https://suggest.dxpapi.com/api BRSM_ACCOUNT_ID=0000 BRSM_DOMAIN_KEY=mydomain JWK_KEYSTORE={...} # ...SNIP...
You can customize the script (e.g, port number to expose, environment variables, etc.) if necessary.
You can build images as follows:
docker-compose build
You can also build and run the images as follows:
docker-compose up
Find more instructions in Docker Compose documentation site.