💭 Self-Hosting selfh.st/icons With Git-Sync
I like a nice icon for dashboards I've put together and having a convenient way to load them up off line would be nice
No themes match.
←→↑↓ preview · 123 tabs · Enter done
All posts
I like a nice icon for dashboards I've put together and having a convenient way to load them up off line would be nice
image updater is a great little tool that I'm using at work and I want to use it in the best way. I'll come back to this
Craig is a discord bot to do multi-track recording, seems like a super easy way to get started with a podcast where the
I often max my swap on all my machines, and I still have no idea what I'm dong different than anyone else. But using to
I've been using openwebui at home, mostly with llama3.2, to do some basic things - meal planning and short script genera
The other shoe just dropped
Audiobookshelf looks like a solid competitor for booksonic. I've liked the simple subsonic api driven nature of booksoni
OpenAI assistants seem like a sweet idea... I wonder if I could use one as a project manager that manages my issues and
do you though?
docker contexts are great, would recommend putting them in your prompt though (via starship or something else)… here’s why
I like to manage my containers remotely - I have a nice development setup on my desktop and I try to keep my server as bare-bones as possible. For a while I’ve been using ansible which makes it easy to manage configuration etc on other machines. But I recently learned about docker contexts and I’m planning to scale down my homelab management to just docker-compose stacks rather than a bunch of super complicated ansible playbooks
So, setting up a context is easy - it’s basically an ssh connection to another machine!
docker context create koober --docker "host=ssh://nic@koober"
koober is one of my dev machines and my ~/.ssh/config is setup such that I can ssh nic@koober, this makes the context work really seamlessly.
So there’s the default context (the machine you’re on) and now I have koober
To use it you run docker context use koober
And then to check we can ls the contexts
docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
koober * ssh://nic@koober
Notice the * - that indicates that’s our current context.
Now here’s where things get hairy… you’ve gotta be super-aware of what context you’re using. I have an indicator in my starship prompt that shows the current context, but since I’m new to using them I kind of didn’t notice it until I ran into this issue…
I’m working on a python application in docker but was not able to execute the entrypoint even though I KNEW the file was there… let’s take a look
Here’s a minimal hello world applycation in docker to illustrate the issue
# main.py
print("hello world")
# Use an official Python runtime as a parent image
FROM python:3.11-slim
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Run the main.py script as the container's main process
CMD ["python", "main.py"]
services:
hello-world:
build: .
volumes:
- .:/app
Notice volume mounting in my project directory . to /app as a common practice to develop inside the container
Here’s where I started to question my sanity…
✗ docker compose up
[+] Running 1/0
✔ Container docker-context-example-hello-world-1 Created 0.0s
Attaching to hello-world-1
hello-world-1 | python: can't open file '/app/main.py': [Errno 2] No such file or directory
hello-world-1 exited with code 2
python can't open file? hmm… Let’s take a look at the image
First let’s make sure we get the image name right
✗ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d7285fc39e2 docker-context-example-hello-world "python main.py" 10 minutes ago Exited (2) 44 seconds ago docker-context-example-hello-world-1
Now we can docker run --rm -it --entrypoint /bin/bash --name debug docker-context-example-hello-world
❯ docker run --rm -it --entrypoint /bin/bash --name debug docker-context-example-hello-world
root@ee46d0e22de8:/app# python main.py
Hello, World!
root@ee46d0e22de8:/app#
WHAT THE HECK??
What happened turns out to be pretty simple once we realize I’m using contexts…
koboer is a remote context, the docker run and docker compose up commands are interacting with the docker socket on that machine.
So if I compose up the stack notice that there’s a volume bind mount in there - well those do not work with contexts (or at least I’m not aware of hose to make it work) and so the /app directory was getting blown away essentially with an empty overlay…
But when running with just docker run with no volume mount, the code was copied in during the build and is right where we expect it…
❯ docker run --rm -it --entrypoint /bin/bash --name debug -v .:/app docker-context-example-hello-world
root@903f591c0384:/app# python main.py
python: can't open file '/app/main.py': [Errno 2] No such file or directory
root@903f591c0384:/app#
Adding a `-v .:/app` to match the compose file, we get the same error...
If we switch to the default context we are back up and running as expected
✗ docker context use default
default
Current context is now "default"
nic in /tmp/docker-context-example via v3.13.0 (dev) NO PYTHON ENVIORNMENT SET
❯ docker compose up
[+] Running 1/0
✔ Container docker-context-example-hello-world-1 Created 0.0s
Attaching to hello-world-1
hello-world-1 | Hello, World!
hello-world-1 exited with code 0
nic in /tmp/docker-context-example via v3.13.0 (dev) NO PYTHON ENVIORNMENT SET
❯ docker run --rm -it --entrypoint /bin/bash --name debug -v .:/app docker-context-example-hello-world
root@4045b6aa8883:/app# python main.py
Hello, World!
root@4045b6aa8883:/app#
Successful runs on both accounts with the volume mount
Context is king
| j | Scroll down |
| k | Scroll up |
| g g | Scroll to top |
| Shift G | Scroll to bottom |
| d | Half-page down |
| u | Half-page up |
| j / ↓ | Next post (in feeds) |
| k / ↑ | Previous post (in feeds) |
| Enter / o | Open highlighted post |
| Shift O | Open in new tab |
| g h | Go to home |
| g s | Focus search |
| [ / Shift K | Previous post in series (or previous page) |
| ] / Shift J | Next post in series (or next page) |
| b | Toggle left sidebar |
| Shift B | Toggle right sidebar |
| s | Toggle reader mode (posts) / simple/rich view (feeds) |
| t | Open theme picker |
| , / . | Previous / Next theme |
| < / > | Previous / Next style |
| F / f | Previous / Next font |
| \ | Toggle dark/light mode |
| / | Focus search input |
| ⌘CtrlK | Focus search (alternative) |
| y y | Copy URL to clipboard |
| ? | Show this help |
| Esc | Close / clear highlight |