wiki location correction and more
- readme changes and bashscripts moved/organized better Co-authored-by: riomoo <alister@kamikishi.net> Co-committed-by: riomoo <alister@kamikishi.net>
This commit is contained in:
parent
f0efc83cf6
commit
5f6a88fbbc
11 changed files with 139 additions and 3 deletions
|
|
@ -29,7 +29,7 @@ RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
|
||||||
RUN upx --best --ultra-brute bin/main
|
RUN upx --best --ultra-brute bin/main
|
||||||
RUN chmod +x bin/main
|
RUN chmod +x bin/main
|
||||||
|
|
||||||
FROM cgr.dev/chainguard/static:latest
|
FROM git.jester-designs.com/riomoo/alisterbase:1.0.0
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
|
||||||
17
README.md
17
README.md
|
|
@ -66,7 +66,16 @@ Then open http://localhost:8080 in your browser.
|
||||||
```bash
|
```bash
|
||||||
git clone https://codeberg.org/riomoo/gopherbook.git
|
git clone https://codeberg.org/riomoo/gopherbook.git
|
||||||
cd gopherbook
|
cd gopherbook
|
||||||
./scripts-bash/run.sh
|
./scripts-bash/run-gb-container/run-podman.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
## If you want to use this with docker:
|
||||||
|
```bash
|
||||||
|
git clone https://codeberg.org/riomoo/gopherbook.git
|
||||||
|
cd gopherbook
|
||||||
|
./scripts-bash/run-gb-container/run-docker.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Then open http://localhost:12010 in your browser.
|
Then open http://localhost:12010 in your browser.
|
||||||
|
|
@ -198,7 +207,11 @@ Please open an issue first for bigger changes.
|
||||||
|
|
||||||
## If you'd like to know about the new mascot Vinny
|
## If you'd like to know about the new mascot Vinny
|
||||||
|
|
||||||
- Check the [Wiki](/riomoo/gopherbook/wiki/Meet-Vinny.md)!
|
- Check the Wiki!
|
||||||
|
- **GitHub**: https://github.com/riomoo/gopherbook/wiki/Meet-Vinny
|
||||||
|
- **GitGud**: https://gitgud.io/riomoo/gopherbook/-/wikis/Meet-Vinny
|
||||||
|
- **JesterDesigns**: https://git.jester-designs.com/riomoo/gopherbook/wiki/Meet-Vinny
|
||||||
|
|
||||||
|
|
||||||
## Thanks / Credits
|
## Thanks / Credits
|
||||||
|
|
||||||
|
|
|
||||||
77
scripts-bash/building-only/build-labeled-container.sh
Executable file
77
scripts-bash/building-only/build-labeled-container.sh
Executable file
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
IMAGE_NAME="localhost/gopherbook:latest"
|
||||||
|
CONTAINER_NAME="gopherbook"
|
||||||
|
VERSION="1.3.000"
|
||||||
|
BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
VCS_REF=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
||||||
|
|
||||||
|
echo "Building new image: $IMAGE_NAME..."
|
||||||
|
podman build --force-rm -t "${IMAGE_NAME}-temp" \
|
||||||
|
--format oci \
|
||||||
|
-f Containerfile .
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Image build failed. Exiting script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure directories exist with correct permissions
|
||||||
|
mkdir -p ./library ./cache ./etc ./watch
|
||||||
|
|
||||||
|
if podman container exists "$CONTAINER_NAME"; then
|
||||||
|
echo "Container '$CONTAINER_NAME' already exists. Stopping and removing it..."
|
||||||
|
podman stop "$CONTAINER_NAME"
|
||||||
|
podman rm "$CONTAINER_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Creating final image with labels in config (no layer)..."
|
||||||
|
|
||||||
|
# Use buildah to modify the image config directly
|
||||||
|
buildah from --name working-container "${IMAGE_NAME}-temp"
|
||||||
|
|
||||||
|
# Add labels directly to the config (doesn't create a layer!)
|
||||||
|
buildah config \
|
||||||
|
--label "org.opencontainers.image.title=Gopherbook" \
|
||||||
|
--label "org.opencontainers.image.description=Gopherbook Minimal Image" \
|
||||||
|
--label "org.opencontainers.image.version=${VERSION}" \
|
||||||
|
--label "org.opencontainers.image.created=${BUILD_DATE}" \
|
||||||
|
--label "org.opencontainers.image.revision=${VCS_REF}" \
|
||||||
|
--label "org.opencontainers.image.authors=Alister <alister@kamikishi.net>" \
|
||||||
|
--label "org.opencontainers.image.vendor=Jester Designs" \
|
||||||
|
--label "org.opencontainers.image.licenses=PIL" \
|
||||||
|
--label "com.jesterdesigns.image.type=base-image" \
|
||||||
|
--label "com.jesterdesigns.image.purpose=static-binary-runtime" \
|
||||||
|
working-container
|
||||||
|
|
||||||
|
# Commit the container to the final image name
|
||||||
|
buildah commit --format oci working-container "$IMAGE_NAME"
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
buildah rm working-container
|
||||||
|
podman rmi "${IMAGE_NAME}-temp"
|
||||||
|
|
||||||
|
echo "Starting new container from image: $IMAGE_NAME..."
|
||||||
|
# IMPROVED: Better memory settings and limits
|
||||||
|
podman run -d --name "$CONTAINER_NAME" \
|
||||||
|
--memory=512m \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 12010:8080 \
|
||||||
|
-v ./library:/app/library \
|
||||||
|
-v ./cache:/app/cache \
|
||||||
|
-v ./etc:/app/etc \
|
||||||
|
-v ./watch:/app/watch \
|
||||||
|
"$IMAGE_NAME"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed to start new container. Exiting script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Cleaning up old images..."
|
||||||
|
podman image prune --force
|
||||||
|
|
||||||
|
echo "Update and cleanup complete!"
|
||||||
|
echo "Container is running with memory limit: 512MB"
|
||||||
|
echo "Go memory limit (GOMEMLIMIT): 512MiB"
|
||||||
|
echo "Aggressive GC enabled (GOGC=50)"
|
||||||
46
scripts-bash/run-gb-container/run-docker.sh
Executable file
46
scripts-bash/run-gb-container/run-docker.sh
Executable file
|
|
@ -0,0 +1,46 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
IMAGE_NAME="localhost/gopherbook:latest"
|
||||||
|
CONTAINER_NAME="gopherbook"
|
||||||
|
|
||||||
|
echo "Building new image: $IMAGE_NAME..."
|
||||||
|
docker build --force-rm -t "$IMAGE_NAME" .
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Image build failed. Exiting script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure directories exist with correct permissions
|
||||||
|
mkdir -p ./library ./cache ./etc ./watch
|
||||||
|
|
||||||
|
if docker container exists "$CONTAINER_NAME"; then
|
||||||
|
echo "Container '$CONTAINER_NAME' already exists. Stopping and removing it..."
|
||||||
|
docker stop "$CONTAINER_NAME"
|
||||||
|
docker rm "$CONTAINER_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting new container from image: $IMAGE_NAME..."
|
||||||
|
# IMPROVED: Better memory settings and limits
|
||||||
|
docker run -d --name "$CONTAINER_NAME" \
|
||||||
|
--memory=512m \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 12010:8080 \
|
||||||
|
-v ./library:/app/library \
|
||||||
|
-v ./cache:/app/cache \
|
||||||
|
-v ./etc:/app/etc \
|
||||||
|
-v ./watch:/app/watch \
|
||||||
|
"$IMAGE_NAME"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Failed to start new container. Exiting script."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Cleaning up old images..."
|
||||||
|
docker image prune --force
|
||||||
|
|
||||||
|
echo "Update and cleanup complete!"
|
||||||
|
echo "Container is running with memory limit: 512MB"
|
||||||
|
echo "Go memory limit (GOMEMLIMIT): 512MiB"
|
||||||
|
echo "Aggressive GC enabled (GOGC=50)"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue