Compare commits

...

5 Commits

Author SHA1 Message Date
45f2c61c17 Merge pull request 'docker swarm' (#14) from feat/add-docker into main
All checks were successful
Build, Test & Publish / Build (push) Successful in 23s
Build, Test & Publish / Build and Publish Container Image (push) Successful in 1m13s
Build, Test & Publish / Deploy to Infrastructure (push) Successful in 2m25s
Reviewed-on: #14
2025-10-22 13:13:33 +11:00
dd30ade94b docker swarm
All checks were successful
Build, Test & Publish / Build (pull_request) Successful in 26s
Build, Test & Publish / Build and Publish Container Image (pull_request) Has been skipped
Build, Test & Publish / Deploy to Infrastructure (pull_request) Has been skipped
2025-10-22 13:11:59 +11:00
587287fb82 Merge pull request 'update commands for postgres' (#13) from fix/postgres into main
All checks were successful
Build, Test & Publish / Build (push) Successful in 27s
Build, Test & Publish / Build and Publish Container Image (push) Successful in 29s
Build, Test & Publish / Deploy to Infrastructure (push) Successful in 1m8s
Reviewed-on: #13
2025-10-20 12:23:57 +11:00
78788f05e3 Merge branch 'main' into fix/postgres
All checks were successful
Build, Test & Publish / Build (pull_request) Successful in 27s
Build, Test & Publish / Build and Publish Container Image (pull_request) Has been skipped
Build, Test & Publish / Deploy to Infrastructure (pull_request) Has been skipped
2025-10-20 12:23:45 +11:00
54ed8d999f update commands for postgres
All checks were successful
Build, Test & Publish / Build (pull_request) Successful in 26s
Build, Test & Publish / Build and Publish Container Image (pull_request) Has been skipped
Build, Test & Publish / Deploy to Infrastructure (pull_request) Has been skipped
2025-10-16 08:33:38 +11:00
4 changed files with 57 additions and 4 deletions

View File

@@ -76,6 +76,10 @@ export default defineConfig({
{ text: 'Local DB (PostgreSQL)', link: '/docker/local-db-pg' }, { text: 'Local DB (PostgreSQL)', link: '/docker/local-db-pg' },
] ]
}, },
{
text: 'Docker Swarm',
link: '/docker-swarm/',
},
{ {
text: 'EF Core', text: 'EF Core',
link: '/ef-core/', link: '/ef-core/',

View File

@@ -0,0 +1,27 @@
# Docker Swarm Snippets and Musings
## Updating Services
View services:
```bash
docker service ls
```
To scale a service up or down:
```bash
docker service scale <service_name>=<number_of_replicas>
```
Sometimes services get stuck or need to be forcefully updated:
```bash
docker service update --force <service_name>
```
::: tip
Sometimes if you need to force containers to restart use the update force (e.g. after restarting a node).
:::

View File

@@ -26,6 +26,10 @@ hero:
text: Docker text: Docker
link: /docker/ link: /docker/
- theme: alt
text: Docker Swarm
link: /docker-swarm/
- theme: alt - theme: alt
text: EF Core text: EF Core
link: /ef-core/ link: /ef-core/

View File

@@ -2,20 +2,38 @@
Handy commands for dumping and restoring Postgres databases. Handy commands for dumping and restoring Postgres databases.
:::info ::: info
Most of these commands are run using Docker as then we don't need to have Postgres installed locally. Most of these commands are run using Docker as then we don't need to have Postgres installed locally.
If a different version of Postgres is needed, just change the version number in the Docker image tag. If a different version of Postgres is needed, just change the version number in the Docker image tag.
::: :::
## Setup
Create a pgpass file in the current directory with the following content:
```
<server>:<port>:<database>:<username>:<password>
```
::: tip
Use `*` as a wildcard for any of the fields except for the password.
:::
## Dumping a Database ## Dumping a Database
```bash ```bash
docker run --network host --rm -v .:/tmp -e PGPASSWORD=mysecretpassword postgres:16 pg_dump -h localhost -U myuser -d mydb -f /tmp/dump.sql docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && pg_dump -h <server> -p <port> -U <username> <database> -f /tmp/$(date +%Y%m%d_%H%M%S)_<database>_dump.sql -c --if-exists"
``` ```
## Restoring a Database ## Dumping a Cluster
```bash ```bash
docker run --network host --rm -v .:/tmp -e PGPASSWORD=mysecretpassword postgres:16 psql -h localhost -U myuser -d mydb -f /tmp/dump.sql docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && pg_dumpall -h <server> -p <port> -U <username> -f /tmp/$(date +%Y%m%d_%H%M%S)_<server>_cluster_dump.sql -c --if-exists"
```
## Restoring from a SQL Dump
```bash
docker run --network host --rm -v .:/tmp -v ./pgpass:/root/.pgpass -e PGPASSFILE=/root/.pgpass postgres:16 bash -c "chmod 600 /root/.pgpass && psql -h <server> -p <port> -U <username> <database> -f /tmp/dump.sql -X"
``` ```