THẢO LUẬN

Sep 6th, 2020 7:33 a.m.

ok bạn, để mình xem thử

+1
Sep 6th, 2020 7:32 a.m.

Bạn xem ở bài Nhập môn CICD với Gitlab của mình, để ý file .gitlab-ci.yaml của mình có pull image về trước, sau đó làm cache build thì sẽ nhanh hơn (dùng option --cache-from).

Tất nhiên với cách này thì ta phải pull image về trước và trong trường hợp image to nặng thì có khi thời gian pull còn dài hơn cả chạy npm install, cái gì cũng có 2 mặt của nó 😄.

Nhưng thường image pull từ registry về size sẽ khá bé so với size thực tế khi ta check bằng docker images vì chúng được nén lại khi lên registry rồi.

0
Sep 6th, 2020 7:27 a.m.

hi bạn, mình cũng dân dev học cách deploy bằng docker trên Linux. Hiện tại mình có dùng GitLab CI để build image từ source repo của Gitlab. Mình có sử dụng cache để lưu folder node_modules lại đến khi có changes, nhưng hầu như mỗi lần build là 1 instance Git Runner khác nhau nên cache ko có ý nghĩa gì cả dẫn đến cache no meaning. Bạn có cách giải quyết nào khác ko? thanks bạn

0
Sep 6th, 2020 6:35 a.m.

@HuyDQ Rất mong bạn viết thêm nhiều những bài hay như này nữa

0
Sep 6th, 2020 6:23 a.m.

cám ơn bạn đã ủng hộ 🤝

0

file analysis_options.yaml:

analyzer:
  strong-mode:
    implicit-casts: false 
    implicit-dynamic: false
  errors:
    close_sinks: ignore

linter:
  rules:
    - annotate_overrides
    - avoid_empty_else
    - avoid_function_literals_in_foreach_calls
    - avoid_init_to_null
    - avoid_null_checks_in_equality_operators
    - avoid_relative_lib_imports
    - avoid_renaming_method_parameters
    - avoid_return_types_on_setters
    - avoid_returning_null
    - avoid_types_as_parameter_names
    - avoid_unused_constructor_parameters
    - await_only_futures
    - camel_case_types
    - cancel_subscriptions
    - cascade_invocations
    - comment_references
    - constant_identifier_names
    - control_flow_in_finally
    - directives_ordering
    - empty_catches
    - empty_constructor_bodies
    - empty_statements
    - hash_and_equals
    - implementation_imports
    - invariant_booleans
    - iterable_contains_unrelated_type
    - library_names
    - library_prefixes
    - lines_longer_than_80_chars
    - list_remove_unrelated_type
    - no_adjacent_strings_in_list
    - no_duplicate_case_values
    - non_constant_identifier_names
    - null_closures
    - omit_local_variable_types
    - only_throw_errors
    - overridden_fields
    - package_api_docs
    - package_names
    - package_prefixed_library_names
    - prefer_adjacent_string_concatenation
    - prefer_collection_literals
    - prefer_conditional_assignment
    - prefer_const_constructors
    - prefer_contains
    - prefer_equal_for_default_values
    - prefer_final_fields
    - prefer_initializing_formals
    - prefer_interpolation_to_compose_strings
    - prefer_is_empty
    - prefer_is_not_empty
    - prefer_single_quotes
    - prefer_typing_uninitialized_variables
    - recursive_getters
    - slash_for_doc_comments
    - sort_constructors_first
    - test_types_in_equals
    - throw_in_finally
    - type_init_formals
    - unawaited_futures
    - unnecessary_brace_in_string_interps
    - unnecessary_const
    - unnecessary_getters_setters
    - unnecessary_lambdas
    - unnecessary_new
    - unnecessary_null_aware_assignments
    - unnecessary_statements
    - unnecessary_this
    - unrelated_type_equality_checks
    - use_rethrow_when_possible
    - valid_regexps
+1
Avatar
đã bình luận câu trả lời trong câu hỏi
Sep 6th, 2020 3:25 a.m.

@ngocson0211 Có nhiều đường đi có thể tới đích bạn ạ.
Nếu rảnh thì sửa lại theo cách của Laravel nó hỗ trợ, tiện thể học luôn xem Accessor là gì 😄

0
Sep 6th, 2020 2:31 a.m.

Bài viết hay quá mình phải đăng nhập để cảm ơn tác giả

+1
Sep 5th, 2020 4:54 p.m.

cho mình hỏi là có thể upload chỉ bằng API key được không. ứng dụng của mình sử dụng youtube để lưu trữ video, việc upload chạy ngầm trên backend và độc lập với người dùng. upload tập trung vào 1 tài khoản, không phải vào tài khoản của người dùng. Xin cảm ơn

0
Sep 5th, 2020 4:08 p.m.

sếp đợt này lại ra một loạt bài rồi, e hơi bận chút nên chưa kịp đọc =)) hôm nào có time anh làm thêm mấy bài sử dụng redis sâu sâu tý a nhé ^^

+1

Cảm ơn bạn rất nhiều ạ 😍

0
Sep 5th, 2020 1:16 p.m.

Bài viết thật phù hợp với người bắt đầu như mình. Nhiều khái niệm trước đây mình chưa hỉu thì bi giờ đã hỉu. Mong chờ bài viết tiếp theo của bạn

Tks.

+1

Mình chỉ biết 2 bài bên đấy copy của mình ai ngờ 5 bài lần 😢 2 Bài của mình bên đó copy được tận 10k, 15k view.

Tính ra viblo mình cũng mất vài bạn đọc mới. Nhưng chất nhất vẫn là via Viblo 😄

0
Sep 5th, 2020 8:57 a.m.

3 byte đầu tiên của chúng tôi

Sao nghe như dịch vậy bạn ơi :-ss

0
Sep 5th, 2020 8:39 a.m.

Đẹp UI/UX friendly! (y)

0

@@ Mấy năm trước mới làm cái đồ án môn Quản trị mạng về thằng Metasploit này, nhưng chỉ sử dụng module có sẵn, rất hóng series xây dựng hoàn chỉnh một module ❤️ cám ơn anh, bài viết rất chi tiết

+1
Sep 5th, 2020 6:39 a.m.

khi tôi làm theo cách của bạn tôi gặp lỗi này, dường như cái host trong config replSet nó không work pymongo.errors.ServerSelectionTimeoutError: mongo1:27017: [Errno 11001] getaddrinfo failed,mongo2:27017: [Errno 11001] getaddrinfo failed,mongo3:27017: [Errno 11001] getaddrinfo failed bạn có ý tưởng nào không?

0
Avatar
đã bình luận câu trả lời trong câu hỏi
Sep 5th, 2020 5:57 a.m.

Thanks

0
Avatar
đã bình luận câu trả lời trong câu hỏi
Sep 5th, 2020 5:57 a.m.

cảm ơn bạn, qua mò google tìm ra 2 cách 1 là tính toán bằng DD::raw, cách 2 dùng tính năng render của datatable cũng được, không biết nó có tối ưu không nhưng chạy được.

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í