all_apps | ||
changes | ||
modify-next-config | ||
modify-saleor-app | ||
modify-turbo-json | ||
patches | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
apps.Dockerfile | ||
Cargo.lock | ||
Cargo.toml | ||
changes.sh | ||
emails.test.env | ||
FUNDING.yml | ||
Makefile.toml | ||
other.Dockerfile | ||
README.md |
Automatic Dockerization of official Saleor app
In this repo I created bash scripts and modifications to Saleor that allow for building docker images with a few commands, while staying uptodate with upstream saleor repos.
Current apps in repo:
- saleor/apps
- avatax
- cms-v2¹
- crm¹
- data-importer
- emails-and-messages
- invoices
- klaviyo
- products-feed
- search
- segment¹
- slack
- smtp
- taxjar
- saelor/abandoned-checkouts
- saelor/payment-stripe
- saelor/payment-klarna
- saelor/payment-authorize.net¹
¹ - doesn't build yet :(, Some I am able to fix later, some prolly not
Caveats
All apps from saleor/apps are upwards of 1.5gb in size, because of this pnpm workspace error
How to use
These images include RedisAPL, and that's what I recommend to use it with. Besides that, use it like any other docker image. For example:
services:
app-payment-stripe:
image: ghcr.io/djkato/saleor-app-payment-stripe:0.4.0
env_file:
- stripe.env
networks:
- saleor-app-tier
depends_on:
- redis-apl
ports:
- 3001:3001
redis-apl:
image: bitnami/redis:latest
environment:
- ALLOW_EMPTY_PASSWORD=yes
- DISABLE_COMMANDS=FLUSHDB,FLUSHALL,CONFIG
ports:
- 6380:6379
networks:
- saleor-app-tier
volumes:
- redis-apl:/bitnami/redis/data
volumes:
redis-apl:
driver: local
driver_opts:
type: none
device: ./temp/volumes/redis/
o: bind
networks:
saleor-app-tier:
driver: bridge
How to build
./changes.sh
- applies git patches and batch edits via rust to add RedisAPL to all apps, and allow them to build via other tweaks.cargo make build-all
orcargo make build-<Chosen app>
if you want to push built images to a repo, change the top env CONTAINER_PUSH_URL
to your repo, for example "ghcr.io/djkato".
Then you can do
cargo make push-all
orAPP=<Chosen app> cargo make push
Prerequisites
- cargo
- cargo-make
- linux shell (bash)
- rust stuff
- git
Thanks Saleor for providing all these apps. Shame Saleor refuses to containerize them officially. Hope this repo helps you. If it does, consider buying me a langosz (donation button on top)!