세일러 / 쇼핑몰 / 장고 / python /
saleor 설치
django framework 로 만들어진 e-commerce 용 frmework 이다.
Prerequisites
설치 full
절차
saleor-platform/docker-compose.yml
에서storefront
와saleor-app-checkout
의 주석처리docker compose build
storefront
와saleor-app-checkout
의 주석처리 없애고docker compose up
상세
saleor-platform/docker-compose.yml
에서 storefront
와 saleor-app-checkout
만 주석처리하고, docker compose build
를 한다.
storefront
saleor-app-checkout
docker compose build
위 2개는 build 를 하면, npm build 를 하는 듯 한데, 제대로 build 가 되지 않았다. 그래서 그냥 docker compose up
할 때만 추가를 했는데, 제대로 동작했다. 원인은 현재로선 파악을 하지 않았다.
다시 storefront
와 saleor-app-checkout
의 주석을 풀고
docker compose up
을 한다.
그리고 db migration 을 하고, 테스트 값을 만들기 위해 아래처럼 하면 된다.
docker compose run --rm api python3 manage.py migrate
docker compose run --rm api python3 manage.py collectstatic --noinput
docker compose run --rm api python3 manage.py populatedb --createsuperuser
--createsuperuser
를 하면 admin@example.com/admin
으로 계정을 만들어준다.
설치, core api 만 사용시
saleor-platform 이라는 git repository 가 있다. 여기에 여러가지를 한번에 모아놨다. 이것을 이용해도 된다.
관련 내용은 다음 문서에서 확인할 수 있다.
git clone https://github.com/saleor/saleor-platform.git –recursive –jobs 3 cd saleor-platform
여기서는 saleor-platform 의 docker-compose.yml 를 수정해서 사용하려 한다.
기존의 docker-compose.yml
을 아래처럼 줄였다.
version: "3.4"
services:
api:
build:
context: ./saleor
dockerfile: ./Dockerfile
args:
STATIC_URL: "/static/"
ports:
- 8000:8000
# restart: unless-stopped
networks:
- saleor-backend-tier
stdin_open: true
tty: true
# depends_on:
# - db
# - redis
# - jaeger
volumes:
- ./saleor/saleor/:/app/saleor:Z
- ./saleor/templates/:/app/templates:Z
- ./saleor/tests/:/app/tests
# shared volume between worker and api for media
# - saleor-media:/app/media
command: python manage.py runserver 0.0.0.0:8000
env_file:
- common.env
- backend.env
# environment:
# - JAEGER_AGENT_HOST=jaeger
# - STOREFRONT_URL=http://localhost:3000/
# - DASHBOARD_URL=http://localhost:9000/
# - ALLOWED_HOSTS=localhost,api
db:
image: library/postgres:13-alpine
ports:
- 5432:5432
restart: unless-stopped
networks:
- saleor-backend-tier
volumes:
- c:\saleor-platform\db\data:/var/lib/postgresql/data
- ./replica_user.sql:/docker-entrypoint-initdb.d/replica_user.sql
environment:
- POSTGRES_USER=saleor
- POSTGRES_PASSWORD=saleor
volumes:
saleor-db:
driver: local
saleor-redis:
driver: local
saleor-media:
networks:
saleor-backend-tier:
driver: bridge
그리고, backend.env
에서 SECRET_KEY
를 설정하자. 아무값이나 넣어놓자. 여기서 database 와 redis 설정을 해주는데, redis 는 무시하자. 이것때문에 추후 실행하면 error 가 보이긴 하지만, 큰 이슈는 없다.
이제 docker compose build
를 하자.
cd saleor-platform
docker compose build
그러면, db 와 saleor web server 가 만들어진다.
이젠 db 를 만들어주자. 아래처럼 하면 된다. populatedb
는 테스트 데이터를 넣어주는데, 굳이 필요하진 않다. 실행하면, redis 관련 에러가 보이긴 하지만, 무시해도 된다.
docker compose run –rm api python3 manage.py migrate docker compose run –rm api python3 manage.py populatedb docker compose run –rm api python3 manage.py createsuperuser
docker compose run –rm api python3 manage.py collectstatic –noinput
이제 실행하자.
docker compose up
웹 브라우저에서 http://localhost:8000/
로 접근하면 화면이 보인다. core api server 는 8000 port 이다. 이것은 api server 이기에, view 가 보이진 않는다.(graphql page 는 있다.)
db client 로 postgreSQL 에 접근도 된다. 위에서 createsuperuser 를 하면 saleor/saleor 로 접속하면 된다.
단점
- Django Oscar vs Saleor for Digital Products store? : django
- framework 를 가져다 fork 해서 써야 한다. framework 의 upgrade 도 쉽지 않다. 이것이 장기적인 project에 적합하지 않게 한다.
- UI 를 customize 하는것이 어렵다.
See Also
- [Saleor] Open-source e-commerce, 2021-02-08 : 직접 설치한 내용
- 커머스 한번 만들어 볼까? #1 (feat. Shopify) | by LEEER | Uconnec | Medium, 2020-04-02 : saleor 장단점에 대한 이야기가 있다.
댓글 없음:
댓글 쓰기