You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aLeaf/podman_example.sh

105 lines
3.2 KiB
Bash

# The rootless daemon needs to be running for rootless operations
# ls $XDG_RUNTIME_DIR/podman/podman.sock
# systemctl --user start podman.socket
# systemctl --user enable podman.socket
# sudo usermod -aG podman $USER
# Can enable low ports with
# sudo sysctl net.ipv4.ip_unprivileged_port_start=0
# http://localhost:8081/dashboard#/
# http://aleaf.local:8080/
#podman info
#systemctl --user status podman.socket
#ls /run/user/$(id -u)/podman/
# for docker compose stuff
# export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock
# echo 'export DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock' >> ~/.bashrc
# Create a Pod (kinda a service container for containers)
# Expose all the ports of said pod (that will be accessed directly/not by other containers)
podman pod create --name aleaf -p 80:80 -p 8080:8080
# Don't add the ports if using traefik as entry point, only without
#podman pod create --name aleaf
# podman rootless doesn't allow priviledged ports < 1024
# This allows ports <1024 to be used in non root
# sudo sysctl net.ipv4.ip_unprivileged_port_start=0
#podman network create traefik
podman build -t aleaf-nginx ./nginx
podman build -t aleaf-php ./php
# --pod aleaf # removed --pod from everything atm
podman run -d \
--pod aleaf \
--name aleaf-mariadb \
-e MYSQL_ROOT_PASSWORD=mariadb \
-e MYSQL_DATABASE=ecomdb \
-v ./db/mysql:/var/lib/mysql:Z \
-v ./db/schema.sql:/docker-entrypoint-initdb.d/schema.sql:Z \
docker.io/library/mariadb:10.7
podman run -d \
--pod aleaf \
--name aleaf-adminer \
-e ADMINER_DEFAULT_SERVER=aleaf-mariadb \
docker.io/library/adminer
#-l 'traefik.enable=true' \
#-l 'traefik.http.routers.adminer.rule=Host(`adminer.local`)' \
#-l 'traefik.http.routers.adminer.entrypoints=web' \
#-l 'traefik.http.services.adminer.loadbalancer.server.port=8080' \
#-l 'traefik.docker.network=traefik' \
# docker.network=podman apparently not needed
podman run -d \
--pod aleaf \
--name aleaf-php \
-v ./php/www:/var/www/html:Z \
aleaf-php
# aleaf.local
podman run -d \
--pod aleaf \
--name aleaf-nginx \
-v ./php/www:/var/www/html:Z \
-v ./nginx/default.conf:/etc/nginx/conf.d/default.conf:Z \
aleaf-nginx
#-l 'traefik.enable=true' \
#-l 'traefik.http.routers.aleaf.rule=Host(`aleaf.local`)' \
#-l 'traefik.http.routers.aleaf.entrypoints=web' \
#-l 'traefik.http.services.aleaf.loadbalancer.server.port=80' \
#-l 'traefik.docker.network=traefik' \
#podman run -d \
#--name traefik \
#-p 8080:80 \
#-p 8081:8080 \
#-v /run/user/$(id -u)/podman/podman.sock:/var/run/docker.sock:ro \
#docker.io/library/traefik:v3.0 \
#--api.insecure=true \
#--providers.docker=true \
#--providers.docker.endpoint=unix:///var/run/docker.sock \
#--providers.docker.exposedbydefault=false \
#--entrypoints.web.address=:80
# -- stuff used to read container labels (nginx this instance)
# Stop/start the stack/pod
#podman pod start aleaf
#podman pod stop aleaf
#podman pod rm aleaf
# Autostart (systemd)
#podman generate systemd --name aleaf --files --new
#mkdir -p ~/.config/systemd/user
#mv *.service ~/.config/systemd/user/
#systemctl --user daemon-reload
#systemctl --user enable pod-aleaf.service
#systemctl --user start pod-aleaf.service
# podman exec -it traefik ls -l /var/run/docker.sock
# sudo usermod -aG podman $USER