DEV Community

Andrew Kang-G
Andrew Kang-G

Posted on

Best Docker Deployment Starategy

https://github.com/patternhelloworld/docker-blue-green-runner

Achieve zero-downtime deployment using just your .env and Dockerfile

Docker-Blue-Green-Runner's run.sh script is designed to simplify deployment: "With your .env, project, and a single Dockerfile, simply run 'bash run.sh'." This script covers the entire process from Dockerfile build to server deployment from scratch.

This means you can easily migrate to another server with just the files mentioned above.

In contrast, Traefik requires the creation and gradual adjustment of various configuration files, which requires your App's docker binary running.

No unpredictable errors in reverse proxy and deployment : Implement safety measures to handle errors caused by your app or Nginx

If any error occurs in the app or router, deployment is halted to prevent any impact on the existing deployment

Internal Integrity Check:

Nginx Router Test Container

External Integrity Check

Rollback Procedures

Additional Know-hows on Docker: Tips and best practices for optimizing your Docker workflow and deployment processes

For example, Traefik offers powerful dynamic configuration and service discovery; however, certain errors, such as a failure to detect containers (due to issues like unrecognized certificates), can lead to frustrating 404 errors that are hard to trace through logs alone.

https://stackoverflow.com/questions/76660749/traefik-404-page-not-found-when-use-https

https://community.traefik.io/t/getting-bad-gateway-404-page-when-supposed-to-route-to-container-port-8443/20398

Manipulates NGINX configuration files directly to ensure container accessibility.

Track Blue-Green status and the Git SHA of your running container for easy monitoring.

Blue-Green deployment decision algorithm: scoring-based approach

Run the command bash check-current-status.sh (similar to git status) to view all relevant details

Security

Refer to the Security section

Production Deployment

Refer to the Production Deployment section

Top comments (0)