목록전체 글 (165)
현제의 현재이야기
AWS 작업을 내가 맡고 있었는데 프론트 배포 + CICD를 구축해보려고 하였다. 온갖 오류를 만났기 때문에 기억을 잃지 않기 위해 기록을 하려고 한다. S3 버킷 버킷 이름은 S3만 배포할 때를 대비하여 실제 도메인 이름을 적어준다. 그리고 ACL을 활성화하고 객체 라이터로 변경한다. AWS CLI에 접속하기 위해서이다. 모든 퍼블릭 엑세스 차단을 해제한다. 그리고 버킷 정책을 편집한다. 정책 생성기에서 S3 선택, principle * 입력, GetObject 액션을 선택, ARN 뒤에 /*를 입력한다. 그리고 정적 웹 사이트 호스트 편집에 들어가 활성화를 눌러준다. 그리고 인덱스 및 오류 문서를 index.html로 설정한다. CloudFront 배포 생성 클릭 원본 도메인에 S3 버킷을 클릭하고 ..
택시를 배정하는 로직을 비동기로 처리해야하는 소모가 발생했다. 비동기 처리를 위해 celery를 사용하기로 했고, 그에 따른 브로커를 redis로 이용하기로 했다. Celery 해결해야 하는 의문점 처음에 redis_queue라는 컨테이너 이름으로 레디스를 6381포트로 띄어줬었다. # docekr compose redis_queue: image: redis:7 ports: - "6381:6379" #settings.py CELERY_BROKER_URL = 'redis://redis_queue:6381/0' CELERY_RESULT_BACKEND = 'redis://redis_queue:6381/0' 이렇게 하니깐 celery에서 redis를 찾지 못하더라. 왜지? 그래서 그냥 기존의 django cha..
소켓을 개발할 필요가 생겨서 우리 서버에 django-channel을 연결해보았다. 애초에 gunicorndms wsgi로 동기 서버를 담당하는 것이었다. 비동기 서버를 돌려야했기에 daphne 서버로 돌리기로 마음먹었다. 서버가 커지면 컨테이너 두개를 돌리고 동기는 gunicorn django 서버, 비동기는 daphne 서버로 포트를 달리해서 compose에 올리라고 했다. 그런데 해커톤 서버에 그렇게까지 할 필요는 없을 것 같아서 daphne 서버만 사용하기로 했다. redis: image: redis:7 ports: - "6379:6379" 우선 레디가 필요하니 레디스를 올리고 CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.Red..
admin를 사용하려면 nginx에서 static을 처리해줬어야 했다. 근데 도저히 static 파일을 미리 모아두기 싫었다. 왜냐하면 static file들이 갱신될 수도 있는거고, 그럴 때마다 수동으로 collectstatic을 하면 불편하기 때문. 그래서 처음에는 nginx docker image가 만들어질 때, 같은 폴더의 static 폴더를 복사하도록 dockerfile을 만들었었다. 근데 nginx 폴더에 static 폴더가 있는건 너무 이상.. 그래서 진짜 몇 시간의 뻘짓을 하다가 드디어 성공했다. 그건 바로 docker의 volume 기능. 처음에 volume이 그저 host와 마운트 되어서 파일을 공유하는 기능인 줄 알았다. 하지만 volumes를 설정해서 컨테니어간 파일을 공유할 수도 ..
sudo docker-compose up 2023/07/25 06:24:28 must use ASL logging (which requires CGO) if running as root 2023/07/25 06:24:28 must use ASL logging (which requires CGO) if running as root [+] Running 0/0 ⠋ web Pulling 0.0s ⠋ nginx Pulling 0.0s [+] Building 0.7s (2/3) [+] Building 0.9s (3/3) FINISHED => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load build d..
docker-compose.yml version: '3' services: nginx: build: ./config/nginx ports: - "80:80" volumes: - .:/code - ./nginx/nginx:/etc/nginx.conf.d image: 11thbackend/nginx:latest depends_on: - web platform: linux/amd64 web: build: context: . dockerfile: Dockerfile command: gunicorn --bind 0.0.0.0:8000 hackathon.wsgi:application volumes: - .:/code #현재 호스트의 작업 디렉토리를 컨테이너 내부의 /code 로 마운팅 한다는 뜻 ports: - "..