vault backup: 2025-06-29 12:43:12
This commit is contained in:
@@ -2,3 +2,13 @@ Endpoint for increasing balance
|
|||||||
Endpoint for reserving ticket(s) + updating transportation remaining count + adding transaction
|
Endpoint for reserving ticket(s) + updating transportation remaining count + adding transaction
|
||||||
Endpoint for getting seats + seeing if each is reserved or not
|
Endpoint for getting seats + seeing if each is reserved or not
|
||||||
Creating and sending a pdf downloadable ticket
|
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.
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user