djkato / saleor-dockerize-all-apps

Repo that creates a workflow to automatically dockerize official upstream Saleor apps.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Buy Me a Coffee at ko-fi.com

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 or cargo 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 or APP=<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)!

About

Repo that creates a workflow to automatically dockerize official upstream Saleor apps.


Languages

Language:Rust 40.3%Language:TypeScript 23.6%Language:Dockerfile 20.3%Language:Shell 15.2%Language:JavaScript 0.6%