Introduction. My Docker🐳 Disaster (And How IT-Tools Saved My Sanity)
Let me start with a confession: I used to hate Docker. A few years ago, I was trying to demo a project for a client. The app worked flawlessly on my laptop, but when I tried to run it on their server? Chaos. Missing dependencies, version conflicts, cryptic error messages—it felt like the tech gods were laughing at me. After 14 hours of Googling, crying, and caffeine overload, I finally stumbled into Docker 🐳. Suddenly, deploying apps felt less like defusing a bomb and more like microwaving leftovers.
![]()
That’s why I’m excited about IT-Tools, a developer’s playground packed with utilities like UUID generators, password analyzers, and encryption tools. But here’s the kicker: deploying it without Docker 🐳 is like eating soup with a fork. Possible? Maybe. Enjoyable? Absolutely not.
In this article, I’ll walk you through deploying IT-Tools using Docker—without the jargon, panic, or existential dread. Let’s turn that "Ugh, DevOps" into "Oh, that’s it?"
What You’ll Need (Spoiler: It’s Not Much)
- Docker 🐳 installed: Docker Desktop for beginners (Windows/Mac) or Docker Engine for Linux you can follow my article.
- A Terminal: Yes, the black screen with green text. No, you don’t need to be a hacker.
- 10 Minutes: Less time than it takes to rewatch your favorite cat video.
Step 1. Docker 🐳 Demystified (No, It’s Not a Whale)
Imagine you’re moving apartments. Instead of packing dishes, books, and that questionable lava lamp separately, you toss everything into labeled boxes. Docker does the same for apps. It wraps your code, settings, and dependencies into a container—a portable box that runs anywhere.
IT-Tools is a Vue.js app, meaning it’s like a fancy website that lives on your machine. Docker🐳 lets you stuff it into a container with a tiny server (Nginx) so you can access it from your browser. No Node.js installs, no dependency drama. Just poof—it works.
Step 2. Grab the Code (Like Borrowing Sugar from a Neighbor)
First, let’s “borrow” the IT-Tools code from GitHub. Open your terminal and type:
git clone https://github.com/CorentinTh/it-tools.git
cd it-tools
This copies the code to your machine and moves you into the project folder. If you’re nervous about Git, don’t be—this is the only command you’ll need.
Step 3. Write a Dockerfile (Your Container’s Recipe Card)
A Dockerfile is like an IKEA manual for Docker. It tells it how to build your app. Create a file named Dockerfile
in the project folder and add this:
# build stage
FROM node:lts-alpine AS build-stage
# Set environment variables for non-interactive npm installs
ENV NPM_CONFIG_LOGLEVEL warn
ENV CI true
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm && pnpm i --frozen-lockfile
COPY . .
RUN pnpm build
# production stage
FROM nginx:stable-alpine AS production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Translation for Humans
- Phase 1: Uses Node.js to install dependencies and compile the app.
- Phase 2: Takes the compiled files and serves them via Nginx on port 80.
Why two phases? It keeps the final container small. Think of it as tossing the eggshells after baking—nobody needs that clutter.
![]()
Step 4. Build the Docker 🐳 Image (Bake the Cake)
In your terminal, run
docker build -t it-tools .
-t it-tools
names your image (like labeling leftovers).
- The
.
means “use the Dockerfile in this folder.”
This might take a few minutes. If you see red text, don’t panic—90% of Docker errors are typos. Double-check the Dockerfile!
True story: Once, I named an image it-tols
and spent 20 minutes wondering why it wouldn’t run. Docker doesn’t judge, but your future self will.
Step 5. Run the Container (Serve the Cake)
Type this in your terminal
docker run -p 8080:80 it-tools
From github packages
docker run -d --name it-tools --restart unless-stopped -p 8080:80 ghcr.io/corentinth/it-tools:latest
![]()
Now open your browser and go to http://localhost:8080. If IT-Tools appears, congrats! If not, check if your cat sat on the keyboard.
![]()
Step 6. Make It Yours (Because Defaults Are Boring)
Change the Port
Prefer port 9000? Use
docker run -p 9000:80 it-tools
Run It in the Background
docker run -d -p 8080:80 --name my-it-tools it-tools
Now you can close the terminal, and IT-Tools keeps running.
Docker Compose for the Fancy Folks
Create a docker-compose.yml
file:
version: '3.8'
services:
it-tools:
image: it-tools
ports:
- "8080:80"
Then run
docker-compose up -d
Boom—IT-Tools launches with one command. Docker Compose is like a party planner for containers.
Step 7: Keep It Fresh (Updates Without Tears)
To update IT-Tools
-
Pull the latest code
git pull origin main
-
Rebuild the Docker image
docker build -t it-tools .
-
Restart the container.
Pro tip: Add docker system prune
occasionally to clean up old images. Your disk space will thank you.
When Things Go Wrong (And They Will)
- “Port 8080 is already in use”:
- Translation: Another app (like Spotify) is hogging the port.
- Fix: Use
-p 8081:80
instead.
- “npm install failed”:
- Likely culprits: No internet in the container or corporate VPNs blocking Docker.
- Fix: Check your network settings or sacrifice a USB drive to the IT department.
- “Where’s my Dockerfile?”:
- Run
ls
to ensure you’re in the right folder. If not, cd
like your life depends on it.
Why Bother With Docker 🐳?
Imagine your teammate asks for a copy of IT-Tools. Without Docker, you’d say:
“Install Node 16, Nginx, clone the repo, run npm install
, then—”
With Docker, you say:
“Run docker run -p 8080:80 it-tools
. Done.”
Mic drop.
Conclusion. Docker 🐳 Isn’t Magic (But It’s Close)
Deploying IT-Tools with Docker isn’t just about convenience—it’s about reclaiming your time. Instead of wrestling with setup, you’re generating UUIDs, testing encryption, or finally fixing that password your cat typed (meowmeow123
isn’t secure, by the way).
So next time someone mentions “containerization,” smile. You’re not just deploying apps—you’re deploying confidence.
Reference