THẢO LUẬN

OK bạn, phần 2 luôn đi

0
thg 11 19, 2020 3:02 SA

Ok cảm ơn bạn, bài viết hay lắm 😄

0
thg 11 19, 2020 2:55 SA

e check trên github của mình xem đã push được mấy file oauth-private key lên đó chưa nhé

+1
thg 11 19, 2020 2:01 SA

@ducmaster,

đúng rồi đó e 😃

0

à thế làm sao mà à

0
thg 11 19, 2020 1:27 SA

@HuyDQ Dạ anh ơi anh cho em hỏi xíu về Deploy project laravel mà trong project có sử dụng passport ạ.
Em deploy thành công rồi. Tuy nhiên, có 1 số API có dùng passport thì nhận lỗi là:
Key path "file:///secret-keys/oauth/oauth-private.key" does not exist or is not readable.
Em thử vài cách trong Issue này (Thử remove *.key trong ignore; Thử thêm .env OAUTH_PUBLIC_KEY, OAUTH_PRIVATE_KEY; Thử thêm script trong composer.json) nhưng chưa fix được. Không biết anh đã gặp lỗi này chưa, có thể gợi ý cho em một chút được không ạ? (bow)

0
thg 11 18, 2020 11:51 CH

@maitrungduc1410 Dạ e cảm ơn a! docker-compose.yml của e có 2 service app và redis đúng rồi a. Chạy pull image mới rồi docker-compose restart app là app chạy bằng code mới rồi phải đúng ko a. Vậy chỗ deploy trong bài em sửa docker-compose up -d; thành docker-compose restart app; phải ko a.

0
thg 11 18, 2020 4:28 CH

@pham.quang.huyc em mới viết nhưng để unlisted rồi 😆

0
thg 11 18, 2020 4:20 CH

độ này ko viết à mà anh không thấy bài nào 😆

0
thg 11 18, 2020 3:58 CH

👍💯👍

+1
thg 11 18, 2020 3:43 CH

Đúng rồi bạn ơi, nó chính là function reducer mà mình định nghĩa phía trên đấy, trong bài này mình viết nhầm thành Reducer viết hoa nên đoạn này hơi confused 1 chút, mình đã edit lại rồi nhé, cám ơn bạn đã góp ý

0
thg 11 18, 2020 3:29 CH

chào e

  1. docker-compose.yml của e có 2 service appredis đúng ko? để restart chỉ service app thì e chạy như sau là đc:
docker-compose restart app

Hay là e có 1 service (container), trong đó chứa cả code app của e và redis? Nếu thế thì e nên tách luôn chúng ra thành 2 service (container) riêng biệt, càng sớm càng tốt để tránh sự phụ thuộc vào nhau, 1 cái thay đổi cái kia buộc phải khởi động lại theo.

  1. Ca này a chưa gặp bao giờ nên ko giúp e đc rồi, e phải search google thôi 😄.

E nên tập chuyển dần qua Linux (hoặc Mac) để dev, win để chơi game thôi. Dev trên win có vô vàn lỗi phát sinh 😃

0
thg 11 18, 2020 2:23 CH

Trước tiên cảm ơn anh vì seri bổ ích này nha, mới thực hành tới bài 7, các bài còn lại chỉ đọc thôi chứ chưa bắt tay vào làm nên nhiều chỗ còn lơ mơ 😆, đọc 1 lượt rồi thực hành dần. Tới đây e có câu hỏi thế này mong anh giải đáp ạ.

  1. Ở chỗ deploy em thấy có lệnh:
docker-compose down;
docker pull ${CI_REGISTRY_IMAGE}:latest;
docker-compose up -d;

Có nghĩa là tất cả Service sẽ restart đúng k ạ. Ở trong trường hợp của em, em lưu data vào redis để làm ranking system, data lớn lắm mỗi lần khởi động lại mất 20p gì đó lận. Service của em gồm:

  • App (nodejs app)
  • Redis

Mà khi em thay đổi code thì chỉ có App là cần restart, việc khởi động lại Redis là không cần thiết. Vậy cho em hỏi có cách nào mà mình chỉ khởi động lại App không ạ? Hay nên tách Redis và App ra 2 container khác nhau? Hay còn giải pháp nào khác ạ.

  1. Câu này đáng ra k nên hỏi ở bài này. Chuyện là em cài docker trên server window, chạy win 10 pro, xong em lưu mongodb mount = volumn gì đó do docker quản lí, xong 1 hôm máy em bị treo, khi start lại thì docker ko lên nữa, nó báo lỗi như link e để dưới, em có search thấy 2 lệnh tưởng là reset lại cài đặt của docker thôi, ai ngờ nó xoá cả volumn chứa data của mongodb đi luôn (tay nhanh hơn não là có thật 😆), data redis thì vẫn còn vì em ko dùng volumn của docker quản lí.
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

Docker thì start thành công rồi nhưng Database thì 😂 Nay thì em quyết định chuyển database lên VPS ubuntu rồi, còn server windows e để chạy redis thôi. (Lí do là vì máy windows đặt ở nhà có khi mất điện, mất mạng, các data ở redis thì có down 1 lúc cũng được, mongodb thì luôn cần uptime) Em cảm ơn ạ!

0

chuẩn luôn em :v

0
thg 11 18, 2020 1:54 CH

chắc ở dự án X hay bị vả cái n+1 lắm a nhỉ, query dài thế cơ mà =))))))))

0

@huukimit với cho em hỏi cái khai báo port của traefik trong file docker-compose.yml so với entryPoints trong traefik.yml thì nó khác nhau như nào và công dụng là gì v ạ? docker-compose.yml version: '3.7' volumes: grafana-data: prometheus-data:

services:
  traefik:
    image: traefik:v2.2
    container_name: traefik
    restart: always
    security_opt:
      - no-new-privileges:true
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./data/traefik.yml:/traefik.yml:ro
      - ./data/acme.json:/acme.json
      - /var/log/traefik/traefik.log:/traefik.log
      - /var/log/traefik/traefikAccess.log:/traefikAccess.log
      # Add folder with dynamic configuration yml
      - ./data/configurations:/configurations
    networks:
      - web

traefik.yml

api:   
  dashboard: true

entryPoints:   
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure   
  websecure:
    address: :443
    http:
      middlewares:
        - secureHeaders@file
      tls:
        certResolver: letsencrypt

providers:   
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false   
  file:
    filename: /configurations/dynamic.yml

certificatesResolvers:   
  letsencrypt:
    acme:
      email: nguyendang2411@yahoo.com
      storage: acme.json
      keyType: EC384
      httpChallenge:
        entryPoint: web

log:   
  filePath: /traefik.log   
  level: DEBUG

accessLog:   
  filePath: /traefikAccess.log

metrics:   
  prometheus:
    addEntryPointsLabels: true
    addServicesLabels: true
+1
thg 11 18, 2020 10:32 SA

Hay đấy nhỉ. tks!

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí