Urgent.News

What's breaking now, across thousands of outlets.

Tech

I deployed ONE Dockerized Notes App (Node.js + Postgres) locally + to Azure ACI! (CLOUD)

I Deployed Docker App on Azure — Part 1: Local + ACI (Working) Stack: Node.js 20 + Express + PostgreSQL 16 + Docker + Azure Container Instances Repo old: https://github.com/krisking7/lexszy-note New repo: https://github.com/Shack793/Docker-to-Cloud.git My Docker Hub: devshadd/notes-app:v1 → https://hub.docker.com/r/devshadd/notes-app Azure: Subscription 1, eastus, SUFFIX=dev12 Live ACI:…

I deployed a Dockerized Notes App (Node.js + Postgres) both locally and on Azure Container Instances (ACI). The app, written in Node.js 20 and Express, interacts with PostgreSQL 16. It was initially developed using Docker Compose and later moved to Azure Container Instances.

To start, the necessary tools were verified by checking versions of Git, Docker, Docker Compose, and Azure CLI. A key issue was that Docker Desktop and the API had different installation locations, which caused docker info to fail. The solution was to install Docker Desktop at a different location and ensure it was running before attempting to connect to the API.

Local development involved cloning the code from a GitHub repository, installing dependencies, and running the app using Docker Compose. The app listens on port 3000 and initializes a database. A simple health check endpoint is available at /health.

Next, the app was pushed to Docker Hub with a dedicated Docker Hub account (devshadd). Docker Compose was used to build and run the app and the PostgreSQL database. Challenges included long build times for pulling the necessary images, which were resolved by increasing the timeout. A formatting issue in JSON was also encountered and fixed using PowerShell.

For Azure deployment, the Docker image was renamed and pushed to Docker Hub under the devshadd/notes-app:v1 tag. An Azure resource group was created, and the Azure CLI was used to create an ACI container with the Docker image. The container needed to be restarted to allow time for the PostgreSQL database to initialize properly. The health check endpoint was confirmed to be functional, and the database was verified to be initialized.

The biggest lessons learned from this deployment process include understanding the differences between depends_on and actual database readiness, the importance of using environment variables for configuration, and the ephemeral nature of Azure Container Instances, which does not persist data beyond the container's lifecycle.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Simulating Last Look: The Broker's Hold Window in 50 Lines of Python

Last look is a short window where the other side can accept or reject your order after seeing it. Here is a tiny simulation that shows how symmetric and asymmetric versions differ.

  • Simulates broker's last look hold window in Python
  • Compares symmetric and asymmetric last look scenarios
  • Reveals hidden asymmetries in execution process

How I Stopped Bioreactor Batch Losses Using Hindsight Memory

How I Stopped Bioreactor Batch Losses Using Hindsight Memory When a 500-liter bioreactor run experiences a sudden pH drop at 2 AM, standard LLM prompts offer textbook advice that wastes critical…

  • System uses LLM with hindsight memory to diagnose bioreactor issues
  • Retrieves past incident resolutions and anomaly signatures in seconds
  • Tested effectiveness with live pH drop and DO spike alert

Xcode 27: The Build Settings That Can Stop a Release

An unchanged Java app can stop building because a number inside its generated Xcode project is now too low. No new API call, no changed screen, just a deployment target the new SDK refuses to accept.

  • Xcode 27 updated build settings for compatibility
  • Removed three deprecated build hints in Xcode 27
  • Updated hints with new codename1.arg.ios settings

More from Tuesday 29 September →