vault backup: 2025-06-29 12:43:12

This commit is contained in:
2025-06-29 12:43:12 +03:30
parent 8e7ad789fb
commit 1bfcc6878f
2 changed files with 196 additions and 0 deletions
@@ -2,3 +2,13 @@ Endpoint for increasing balance
Endpoint for reserving ticket(s) + updating transportation remaining count + adding transaction
Endpoint for getting seats + seeing if each is reserved or not
Creating and sending a pdf downloadable ticket
### ⚠ Important Tip
If your `agent.ts` uses `useAuthStore().token` **at the top level**, remember:
- On very first load, Zustand will **rehydrate** from storage _after_ initial render, so token may be `null` until rehydration is done.
- Fix: either delay access until after `hasHydrated`, or refactor `agent` to inject token per request.
+186
View File
@@ -0,0 +1,186 @@
# Docker?
# Container?
A way to package application with everything they need inside the package. that package is portable and can be shared and moved around.
The place of containers? they live in a **container repository**
Some companies have private repositories
There is a public repository for Docker: DockerHub
# How Containers Helped?
Before container, people had to install all the things stuff
Problems: Installation process is different on different OS. There are many steps for installing applications and this is prone to errors
With Container: You do not have to install anything
The container is in its own isolated environment.
everything needed is packaged with all needed configuration.
the download is just one command
You can also some 2 different versions of the same app
## Deployment:
before:
people would produce artificats with a set of instructions on how to do it.
you would have a jar file or stuff
development would give it to operators and all
problem: you need to install everything...
misunderstandings...
after:
No envioronmental configuration needed on server - except docker runtime
# Container:
## Layers of images
## Mostly Linux Base Image, because small in size (alpine)
## Application image on top
# Docker Image vs Container
Image: actual package. artifact that can be moved around
Container: actually start the application. container envioronment is created
# Docker vs VM?
Docker works on OS level.
OS Layers: OS Kernel -> Application
Docker: virtualizes the application layer
VM: virtualizes OS Kernel as well
Size of docker images are much smaller
Speed of docker is much faster
Compatibility: VM of any OS can be run on any other... there should be kernel compatibility.
Need to use docker DESKTOP
# Docker Installation
# Image vs Container
Container is a running environment for IMAGE
Container: File System, Environment configs, application image(postgres, radis, mongo)
Container has a port binded.
The file system in Container is virtual
All the artificts in docker hub are images, not containers
Running an image will create a container I guess.
docker ps -> list containers
docker run -> start new container with a command
docker stop CONTAINER_ID
docker start CONTAINER_ID
docker ps -a => will show all, running or not running
How to use different versions of stuff
Run the containers with different versions
# Container Port vs Host port:
# Binding between laptop and container port:
during the run command =>
docker run -pHOSTPORT:CONTAINERPORT
# Debugging Containers
docker run -d -p
docker logs CONTAINER_ID/NAME
you can give names to containers, or some random thing is given
docker exec -it [CONTAINERID/NAME] /bin/bash
(interactive terminal)
use exit to exit
# Demo
## Docker Network
MongoDb - MongoExpress
Those packages in the same isolated docker network can connect directly to each othe or something
docker network ls
## Creating docker network
docker network create mongo-network
docker run -p ... : .... -d [userpass... view documentation on docker hub] -net mongo-network
mongo
## Error:
```
deploying WSL2 distributions
ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro "Failed to configure network (networkingMode Nat). To disable networking, set `wsl2.networkingMode=None` in C:\\Users\\LENOVO\\.wslconfig\r\nError code: Wsl/Service/RegisterDistro/CreateVm/ConfigureNetworking/HNS/0xffffffff\r\n" output="docker-desktop": exit code: 4294967295: running WSL command wsl.exe C:\WINDOWS\System32\wsl.exe --import docker-desktop <HOME>\AppData\Local\Docker\wsl\main C:\Program Files\Docker\Docker\resources\wsl\wsl-bootstrap.tar --version 2: Failed to configure network (networkingMode Nat). To disable networking, set `wsl2.networkingMode=None` in <HOME>\.wslconfig
Error code: Wsl/Service/RegisterDistro/CreateVm/ConfigureNetworking/HNS/0xffffffff
: exit status 0xffffffff
checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.
```
save
```
[wsl2]
networkingMode=None
```
in Users/Lenovo as .wslconfig
# Compose
```
version:'3'
services:
name:
image:[image]
ports:
- HOST:CONTAINER
environment:
- SOMETHING=value
mongodb:
image:mongo
ports:
- 27017:27017
environment:
- MONGO..._USERNAME=admin
```
Docker compose handles the same network thing
Indentation is important
```
docker-compose -f ... up/down
```
# Dockerfile
dockerfile -> image
copy artifacts (jar, war, bundle.js)
blueprint for building images
```
FROM node
(Alternative to the one in the docker compose file... that one is better)
ENV ...=...
...=...
(Directory is built INSIDE of a container)
RUN mkdir -p /home/app
(This one is on HOST)
COPY ./home/app
CMD ["node", "server.js"]
```
The name MUST be: Dockerfile