เดเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเตบเดฒเตเตป เดตเตเดกเดฟเดฏเต เดเดณเตเดณเดเดเตเด เดถเตเดชเดพเตผเดถ เดธเดเดตเดฟเดงเดพเดจเด เดเดฐเต เด
เดเดเตเด เดตเดพเดฃเดฟเดเตเดฏ เดตเดฟเดเดธเดจเดฎเดพเดฃเต, เดธเดพเดเตเดเตเดคเดฟเดเดฎเดพเดฏเดฟ เดเตเดคเตเดคเด, เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต เดเดเดเดเตเดเดณเตเดเต เดเดฐเต เดฎเตพเดเตเดเดฟ-เดเดเด เดเตเดฒเดธเตเดฑเตเดฑเดฑเดพเดฃเต. เด เดฒเตเดเดจเด เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฆเตเดฆเตเดถเตเดฏเด, เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดธเดฎเดฏ เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเตฝ เดเดเตเดเดณเตเดเต เดชเตเดฐเดเตเดฐเดฟเดฏเดเดณเตเดเต เดธเตเดฅเดพเดชเดฟเดค เดตเตผเดเตเดเตเดซเตเดฒเตเดฏเต เดคเดเดธเตเดธเดชเตเดชเตเดเตเดคเตเดคเดพเดคเต, เดเดฐเต เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเดจเดพเดฏเดฟ เดกเตเดเตเดเตผ เดธเตเดตเดพเด เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดตเดฟเดตเดฐเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏ เดเดเตเดฏเดพเดจเด เดฐเดฃเตเดเต เดญเดพเดเดเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดกเตเดเตเดเตผ เดธเตเดตเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดฆเตเดฏ เดญเดพเดเด CI/CD เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต, เดฐเดฃเตเดเดพเด เดญเดพเดเด เด
เดคเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดฆเตเดฏเดญเดพเดเด เดตเดพเดฏเดฟเดเตเดเดพเตป เดคเดพเดฒเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดตเตผเดเตเดเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดเดเตเดเดพเด.
เดเดพเดธเตเดฑเตเดฑเต เด
เดเดฐเต เดเดพเดฒเดคเตเดคเต, เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดตเตเดเดคเตเดคเดฟเตฝ เดเดฐเต CI/CD เดชเตเดฐเตเดธเดธเตเดธเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดกเตเดเตเดเตผ เดเดชเดฏเตเดเดฟเดเตเดเดฐเตเดคเต เดเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต เดเดฐเต เดจเดฟเดฌเดจเตเดงเดจ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดเดเดเตเดเตพ เดชเดฒ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดเตเดเตเดจเตเดจเต:
- เดเตฝโเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต เดเดเดเดเตเดเดณเตเดเต เดเตเดเตเดคเตฝ เดตเดฟเดถเตเดตเดธเดจเตเดฏเดตเตเด เดธเตเดธเตเดฅเดฟเดฐเดตเตเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต (เด เดคเดพเดฏเดคเต, เดธเดพเดฐเดพเดเดถเดคเตเดคเดฟเตฝ, เดตเดฟเตผเดเตเดเตเดตเดฒเตเดธเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ เดเดจเตเดจ เดเดตเดถเตเดฏเดเดค)
- เดฎเตเตปเดจเดฟเดฐ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดกเตเดเตเดเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเดฟเดฒเตเดฒ (เดตเดฟเดเดฟเดคเตเดฐเด, เดชเดเตเดทเต เด เดเตเดเดจเตเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต)
- เดเตผ เดเตปเดกเต เดกเดฟ เดฎเดพเดจเตเดเตโเดฎเตเดจเตเดฑเดฟเดจเตเดฑเต เดชเตเดฐเดคเตเดฏเดฏเดถเดพเดธเตเดคเตเดฐเดชเดฐเดฎเดพเดฏ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ
MVP-เดฏเตเดเต เด เดเดฟเดธเตเดฅเดพเดจ เดธเตเดเดฐเตเดฏเดเตเดเดณเตเด เดธเตเดฑเตเดฑเดพเดเตเดเตเด เดเดเดฆเตเดถ เดชเตเดฐเดพเดฐเดเดญ เดเดตเดถเตเดฏเดเดคเดเดณเตเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเดพเดฃเต:
- 4 Debian เดเดณเตเดณ Intelยฎ X5650 เดธเตเตผเดตเดฑเตเดเตพ (เดตเดฟเดเดธเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดเดฐเต เดถเดเตเดคเดฎเดพเดฏ เดฏเดจเตเดคเตเดฐเด)
- เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดเดเดเตเดเดณเตเดเต เดตเดฟเดเดธเดจเด C++, Python3-เตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต
- เดเดชเดฏเตเดเดฟเดเตเด เดชเตเดฐเดงเดพเดจ เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดเตเดณเตเดเตพ: เดเดพเดซเตเด, เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต, เดเดฏเตผเดซเตเดฒเต, เดฑเตเดกเดฟเดธเต, เดเตเดฐเดพเดซเดพเดจ, เดชเตเดธเตเดฑเตเดฑเตเดเตเดฐเตเดธเตโเดเตเดเตฝ, เดฎเตเดธเตโเดเตเดฏเตเดเตฝ, โฆ
- เดกเตเดฌเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดฑเดฟเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเตเดเด เดเดเดเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเตเดชเตเดชเต เดฒเตเดจเตเดเตพ
เดชเตเดฐเดพเดฐเดเดญ เดเดเตเดเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดฃเตเด เดเดฆเตเดฏเดคเตเดคเต เดเตเดฆเตเดฏเดเตเดเดณเดฟเดฒเตเดจเตเดจเต, เดเดคเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเตเด (CI/CD) เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดเดเดเตเดเตพ เดเดเตเดเดจเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดเดเดเดเตเดเตพ เดตเตเดฏเดตเดธเตเดฅเดพเดชเดฟเดคเดฎเดพเดฏเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเด เดตเตเดฏเดตเดธเตเดฅเดพเดชเดฟเดคเดฎเดพเดฏเดฟ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเตเด เดเดเตเดเตพ เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต. C++ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ Python-เตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเด เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดชเดฒ เดคเดฐเดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เด เดตเดฏเดฟเตฝ, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเด, เดถเตเดเดฐเดฟเดเตเด เดเดฟเดคเตเดฐเดเตเดเดณเตเดเต เดถเตเดเดฐเดคเตเดคเดฟเดฒเตเดเตเดเต เด เดฏเดฏเตเดเตเดเตเด, เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เด เดตเดฏเตเดเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป. เดเดคเดฟเดจเดเด เด เดเตเดเดพเดคเดฎเดพเดฏ เดเดฐเต เดเดพเดฐเดฃเดคเตเดคเดพเตฝ, เดฎเดฑเตเดฑเตเดฐเต เดฐเตเดคเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต, เด เดคเดพเดฏเดคเต: CI เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ เดซเดฏเดฒเตเดเตพ เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต, เดเดตเดถเตเดฏเดเดคเดเตพ.txt-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ py เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต, เดเตเดเดพเดคเต เด เดเตผเดเตเดเดฟเดซเดพเดเตเดฑเตเดฑเตเดเดณเตเดฒเตเดฒเดพเด เดเตเตบเดซเดฟเดเดฑเตเดเตพ, เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเตเดชเตเดชเด เด เดฏเดฏเตโเดเตเดเตเดจเตเดจเต. เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟ. เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเตผ เด เดตเดเดพเดถเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
CI/CD เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฏเดฟ Gitlab-CI เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต. เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดชเตเดชเตเดชเตเดฒเตเตป เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
เดเดเดจเดพเดชเดฐเดฎเดพเดฏเดฟ, gitlab-ci.yml เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
---
variables:
# ะผะธะฝะธะผะฐะปัะฝะฐั ะฒะตััะธั ะฆะะฃ ะฝะฐ ัะตัะฒะตัะฐั
, ะณะดะต ัะฐะทะฒะพัะฐัะธะฒะฐะตััั ะบะปะฐััะตั
CMAKE_CPUTYPE: "westmere"
DEBIAN: "MYREGISTRY:5000/debian:latest"
before_script:
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh && echo -e "Host *ntStrictHostKeyChecking nonn" > ~/.ssh/config
stages:
- build
- testing
- deploy
debug.debian:
stage: build
image: $DEBIAN
script:
- cd builds/release && ./build.sh
paths:
- bin/
- builds/release/bin/
when: always
release.debian:
stage: build
image: $DEBIAN
script:
- cd builds/release && ./build.sh
paths:
- bin/
- builds/release/bin/
when: always
## testing stage
tests.codestyle:
stage: testing
image: $DEBIAN
dependencies:
- release.debian
script:
- /bin/bash run_tests.sh -t codestyle -b "${CI_COMMIT_REF_NAME}_codestyle"
tests.debug.debian:
stage: testing
image: $DEBIAN
dependencies:
- debug.debian
script:
- /bin/bash run_tests.sh -e codestyle/test_pylint.py -b "${CI_COMMIT_REF_NAME}_debian_debug"
artifacts:
paths:
- run_tests/username/
when: always
expire_in: 1 week
tests.release.debian:
stage: testing
image: $DEBIAN
dependencies:
- release.debian
script:
- /bin/bash run_tests.sh -e codestyle/test_pylint.py -b "${CI_COMMIT_REF_NAME}_debian_release"
artifacts:
paths:
- run_tests/username/
when: always
expire_in: 1 week
## staging stage
deploy_staging:
stage: deploy
environment: staging
image: $DEBIAN
dependencies:
- release.debian
script:
- cd scripts/deploy/ &&
python3 createconfig.py -s $CI_ENVIRONMENT_NAME &&
/bin/bash install_venv.sh -d -r ../../requirements.txt &&
python3 prepare_init.d.py &&
python3 deploy.py -s $CI_ENVIRONMENT_NAME
when: manual
เด เดธเดเดฌเตเดฒเดฟเดฏเตเด เดเตเดธเตเดฑเตเดฑเดฟเดเดเตเด เด เดคเดฟเดจเตเดฑเต เดธเตเดตเดจเตเดคเด เดเดฎเตเดเดฟเดฒเดพเดฃเต เดจเดเดคเตเดคเตเดจเตเดจเดคเต เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต, เด เดตเดฟเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดธเดฟเดธเตเดฑเตเดฑเด เดชเดพเดเตเดเตเดเตเดเดณเตเด เดเดคเดฟเดจเดเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดเดฏเตเด เดฎเดฑเตเดฑเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเตเดฒเดฟเดเดณเดฟเดฒเต เด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดเดฐเตเดจเตเดจเตเด เด เดคเดฟเดจเตเดฑเตเดคเดพเดฏ เดฐเตเดคเดฟเดฏเดฟเตฝ เดฐเดธเดเดฐเดฎเดพเดฃเตเดเตเดเดฟเดฒเตเด, เดเดพเตป เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เด เดตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเดฟเดฒเตเดฒ; เด เดต เดเดฐเตเดจเตเดจเตเด เดตเดฟเดตเดฐเดฟเดเตเดเดพเตป เดเดฃเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเด, เดเดคเต เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เดเดฆเตเดฆเตเดถเตเดฏเดฎเดฒเตเดฒ. เดตเดฟเดจเตเดฏเดพเดธ เดเดเตเดเดคเตเดคเดฟเตฝ เดเตเดณเดฟเดเดเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเดณเตเดเต เดเดฐเต เดถเตเดฐเตเดฃเดฟ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเตเดเตเดเต เดเดพเตป เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดง เดเตเดทเดฃเดฟเดเตเดเดเตเดเต:
- createconfig.py โ เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดธเตโเดค เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเดฟเดฒเต เดเดเดเดเตเดเตพเดเตเดเตเดณเตเดณ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเตเดณเตเดณ เดเดฐเต settings.ini เดซเดฏเตฝ เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเต (เดชเตเดฐเตเดชเตเดฐเตเดกเดเตเดทเตป, เดชเตเดฐเตเดกเดเตเดทเตป, เดเตเดธเตเดฑเตเดฑเดฟเดเดเต, ...)
- install_venv.sh โ เดเดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเตฝ py เดเดเดเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟ เดธเตเดทเตโเดเดฟเดเตเดเตเดเดฏเตเด เด เดคเต เดตเดฟเดฆเตเดฐ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
- ready_init.d.py โ เดเตเดเดชเตเดฒเตเดฑเตเดฑเดฟเดจเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดธเตเดฑเตเดฑเดพเตผเดเตเดเต-เดธเตเดฑเตเดฑเตเดชเตเดชเต เดเดเดเดเตเดเตพเดเตเดเดพเดฏเดฟ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดจเตเดจเต
- deploy.py - เดชเตเดคเดฟเดฏ เดเดเดเดเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเดฏเตเด เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
เดธเดฎเดฏเด เดเดเดจเตเดจเตเดชเตเดฏเดฟ. เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดเดเตเดเด เดชเตเดฐเต เดชเตเดฐเตเดกเดเตเดทเดจเตเด เดชเตเดฐเตเดกเดเตเดทเดจเตเด เดตเดดเดฟ เดฎเดพเดฑเตเดฑเดฟ. เดเดฐเต เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเตฝ (CentOS) เดเตฝเดชเตเดชเดจเตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดเตเตผเดคเตเดคเต. เดฎเดฑเตเดฑเตเดฐเต 5 เดถเดเตเดคเดฎเดพเดฏ เดซเดฟเดธเดฟเดเตเดเตฝ เดธเตเตผเดตเดฑเตเดเดณเตเด เดเดฐเต เดกเดธเตป เดตเตเตผเดเตเดตเตฝ เดธเตเตผเดตเดฑเตเดเดณเตเด เดเตเตผเดคเตเดคเต. เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเตเด เดเตเดธเตเดฑเตเดฑเตผเดฎเดพเตผเดเตเดเตเด เด เดตเดฐเตเดเต เดเตเดฒเดฟเดเตพ เดเตเดฒเดฟ เดเตเดฏเตเดฏเตเดจเตเดจ เด เดตเดธเตเดฅเดฏเตเดเต เดเตเดเตเดคเดฒเต เดเตเดฑเดตเต เด เดเตเดคเตเดคเตเดณเตเดณ เดเดฐเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฏเดฟ. เด เดตเดจเดฟเดฒเตเดฒเดพเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒเตเดจเตเดจเต เด เดธเดฎเดฏเดคเตเดคเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ ...
เดญเดพเดเด II
เด
เดคเดฟเดจเดพเตฝ, เดกเตเดเตเดเตผเดซเดฏเดฒเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเดพเดคเตเดค เดฐเดฃเตเดเต เดกเดธเตป เดตเตเดฏเดเตเดคเดฟเดเดค เดเดเดเดเตเดเดณเตเดเต เดเดเดญเตเดฐเดฎเดพเดฏ เดธเดเดตเดฟเดงเดพเดจเดฎเดพเดฃเต เดเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเตผ. เดชเตเดคเตเดตเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เดชเตเดฐเต-เดฑเดฟเดฒเตเดธเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเดฟเดจเต เดฎเตเดฎเตเดชเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเต เดเดฐเต เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดเตเดเดณเตเดเต เดเตเดฎเดคเดฒ.
เดธเตเดฆเตเดงเดพเดจเตเดคเดฟเดเดฎเดพเดฏเดฟ, เดเดฐเตเดธเดฎเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเตพ เดเดฃเตเดเดพเดเดพเด: เดชเตเตผเดคเตเดคเตเดเดฐเดฟเดเตเด เด เดตเดธเตเดฅเดฏเดฟเดฒเต เดชเตเตผเดคเตเดคเตเดเดฐเดฃเดคเตเดคเดฟเดจเดเตเดคเตเดคเต เดเดณเตเดณ เดเตเดฒเดฟเดเตพ. เดเดเตเดเดณเตเดเต เดชเดเตเดเดฒเตเดณเตเดณ เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดถเดเตเดคเดฟ เดเดฐเต เดธเตเตผเดตเดฑเดฟเดฒเตเด เดจเดฟเดฐเดตเดงเดฟ เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเด เดเดฑเตเดฑเดชเตเดชเตเดเตเดเดคเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด (เดชเตเตผเดเตเดเตเดเตพ, เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดฎเตเดคเดฒเดพเดฏเดตเดฏเดฟเตฝ เดเดตเตผเดฒเดพเดชเตเดชเต เดเดฃเตเดเดพเดเดฐเตเดคเต).
เดเดเตเดเดณเตเดเต เดเดฑเตเดฑเดตเตเด เดตเดฟเดฒเดชเตเดชเตเดเตเด เดตเดฟเดญเดตเด เดจเดฎเตเดฎเตเดเต เดธเดฎเดฏเดฎเดพเดฃเต, เดเดเตเดเตพเดเตเดเต เด เดคเดฟเตฝ เด เดงเดฟเดเดฎเดฟเดฒเตเดฒ.
เดตเตเดเดฎเตเดฑเดฟเดฏ เดคเตเดเดเตเดเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดฒเดพเดณเดฟเดคเตเดฏเดตเตเด เดตเดดเดเตเดเดฎเตเดณเตเดณ เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเดฏเตเด เดเดพเดฐเดฃเด เดเดเตเดเตพ เดกเตเดเตเดเตผ เดธเตเดตเดพเด เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเต. เดฑเดฟเดฎเตเดเตเดเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดเดฐเต เดฎเดพเดจเตเดเดฐเตเด เดจเดฟเดฐเดตเดงเดฟ เดจเตเดกเตเดเดณเตเด เดธเตเดทเตเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดเตเดเตพ เดเดฆเตเดฏเด เดเตเดฏเตเดคเดคเต:
$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
kilqc94pi2upzvabttikrfr5d nop-test-1 Ready Active 19.03.2
jilwe56pl2zvabupryuosdj78 nop-test-2 Ready Active 19.03.2
j5a4yz1kr2xke6b1ohoqlnbq5 * nop-test-3 Ready Active Leader 19.03.2
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, เดเดเตเดเตพ เดเดฐเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเต:
$ docker network create --driver overlay --subnet 10.10.10.0/24 nw_swarm
เด
เดเตเดคเตเดคเดคเดพเดฏเดฟ, CI-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเตเดกเตเดเดณเตเดเต เดตเดฟเดฆเตเดฐ เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเดฟเดจเตเดฑเต เด
เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดเดเตเดเตพ Gitlab-CI, Swarm เดจเตเดกเตเดเตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเต: เดธเตผเดเตเดเดฟเดซเดฟเดเตเดเดฑเตเดฑเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด, เดฐเดนเดธเตเดฏ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเด, เดเตเดเดพเดคเต เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเต เดธเตเตผเดตเดฑเดฟเตฝ เดกเตเดเตเดเตผ เดธเตเดตเดจเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเด. เดเดคเต
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, .gitlab-ci .yml-เตฝ เดธเตเดฑเตเดฑเดพเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดเตเดฒเดฟเดเตพ เดเดเตเดเตพ เดเตเตผเดคเตเดคเต.
.gitlab-ci .yml-เดฒเตเดเตเดเต เดจเดฟเดฐเดตเดงเดฟ เดเตเดฒเดฟเดเตพ เดเตเดเดฟ เดเตเตผเดคเตเดคเต
## staging stage
deploy_staging:
stage: testing
before_script:
- echo "override global 'before_script'"
image: "REGISTRY:5000/docker:latest"
environment: staging
dependencies: []
variables:
DOCKER_CERT_PATH: "/certs"
DOCKER_HOST: tcp://10.50.173.107:2376
DOCKER_TLS_VERIFY: 1
CI_BIN_DEPENDENCIES_JOB: "release.centos.7"
script:
- mkdir -p $DOCKER_CERT_PATH
- echo "$TLSCACERT" > $DOCKER_CERT_PATH/ca.pem
- echo "$TLSCERT" > $DOCKER_CERT_PATH/cert.pem
- echo "$TLSKEY" > $DOCKER_CERT_PATH/key.pem
- docker stack deploy -c docker-compose.yml ${CI_ENVIRONMENT_NAME}_${CI_COMMIT_REF_NAME} --with-registry-auth
- rm -rf $DOCKER_CERT_PATH
when: manual
## stop staging stage
stop_staging:
stage: testing
before_script:
- echo "override global 'before_script'"
image: "REGISTRY:5000/docker:latest"
environment: staging
dependencies: []
variables:
DOCKER_CERT_PATH: "/certs"
DOCKER_HOST: tcp://10.50.173.107:2376
DOCKER_TLS_VERIFY: 1
script:
- mkdir -p $DOCKER_CERT_PATH
- echo "$TLSCACERT" > $DOCKER_CERT_PATH/ca.pem
- echo "$TLSCERT" > $DOCKER_CERT_PATH/cert.pem
- echo "$TLSKEY" > $DOCKER_CERT_PATH/key.pem
- docker stack rm ${CI_ENVIRONMENT_NAME}_${CI_COMMIT_REF_NAME}
# TODO: need check that stopped
when: manual
เดฎเดพเดจเตเดตเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดชเตเดชเตเดชเต เดฒเตเดจเตเดเดณเดฟเตฝ (เดกเดฟเดชเตเดฒเตเดฏเต_เดธเตเดฑเตเดฑเตเดเดฟเดเดเต, เดธเตเดฑเตเดฑเตเดชเตเดชเต_เดธเตเดฑเตเดฑเตเดเดฟเดเดเต) เดฐเดฃเตเดเต เดฌเดเตเดเดฃเตเดเตพ เดเตเตผเดคเตเดคเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดฎเตเดเดณเดฟเดฒเต เดเตเดกเต เดถเดเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต.
เดธเตเดฑเตเดฑเดพเดเตเดเต เดจเดพเดฎเด เดฌเตเดฐเดพเดเตเดเดฟเดจเตเดฑเต เดชเตเดฐเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเต, เด เดชเตเดฐเดคเตเดฏเตเดเดค เดฎเดคเดฟเดฏเดพเดเตเด. เดธเตเดฑเตเดฑเดพเดเตเดเดฟเดฒเต เดธเตเดตเดจเดเตเดเตพเดเตเดเต เด
เดฆเตเดตเดฟเดคเตเดฏ เดเดชเดฟ เดตเดฟเดฒเดพเดธเดเตเดเดณเตเด เดชเตเตผเดเตเดเตเดเดณเตเด เดกเดฏเดฑเดเตโเดเดฑเดฟเดเดณเตเด เดฎเดฑเตเดฑเตเด เดฒเดญเดฟเดเตเดเตเด. เดเดฑเตเดฑเดชเตเดชเตเดเตเดเดคเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เดธเตเดฑเตเดฑเดพเดเตเดเต เดฎเตเดคเตฝ เดธเตเดฑเตเดฑเดพเดเตเดเต เดตเดฐเต เดเดฐเตเดชเตเดฒเตเดฏเดพเดฃเต (เดเดฒเตเดฒเดพ เดธเตเดฑเตเดฑเดพเดเตเดเตเดเตพเดเตเดเตเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดเดฐเตเดชเตเดฒเตเดฏเดพเดฃเต) - เด
เดคเดพเดฃเต เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเดคเต. เดเดเตเดเตพ เดธเตเดฑเตเดฑเดพเดเตเดเต (เดเตเดฒเดธเตเดฑเตเดฑเตผ) เดเดชเดฏเตเดเดฟเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเต docker-compose.yml, เดเดคเต เดเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเต.
docker-compose.yml
---
version: '3'
services:
userprop:
image: redis:alpine
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
networks:
nw_swarm:
celery_bcd:
image: redis:alpine
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
networks:
nw_swarm:
schedulerdb:
image: mariadb:latest
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: schedulerdb
MYSQL_USER: ****
MYSQL_PASSWORD: ****
command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci', '--explicit_defaults_for_timestamp=1']
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
networks:
nw_swarm:
celerydb:
image: mariadb:latest
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
MYSQL_DATABASE: celerydb
MYSQL_USER: ****
MYSQL_PASSWORD: ****
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
networks:
nw_swarm:
cluster:
image: $CENTOS7
environment:
- CENTOS
- CI_ENVIRONMENT_NAME
- CI_API_V4_URL
- CI_REPOSITORY_URL
- CI_PROJECT_ID
- CI_PROJECT_URL
- CI_PROJECT_PATH
- CI_PROJECT_NAME
- CI_COMMIT_REF_NAME
- CI_BIN_DEPENDENCIES_JOB
command: >
sudo -u myusername -H /bin/bash -c ". /etc/profile &&
mkdir -p /storage1/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME &&
cd /storage1/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME &&
git clone -b $CI_COMMIT_REF_NAME $CI_REPOSITORY_URL . &&
curl $CI_API_V4_URL/projects/$CI_PROJECT_ID/jobs/artifacts/$CI_COMMIT_REF_NAME/download?job=$CI_BIN_DEPENDENCIES_JOB -o artifacts.zip &&
unzip artifacts.zip ;
cd /storage1/$CI_COMMIT_REF_NAME/$CI_PROJECT_NAME/scripts/deploy/ &&
python3 createconfig.py -s $CI_ENVIRONMENT_NAME &&
/bin/bash install_venv.sh -d -r ../../requirements.txt &&
python3 prepare_init.d.py &&
python3 deploy.py -s $CI_ENVIRONMENT_NAME"
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
tty: true
stdin_open: true
networks:
nw_swarm:
networks:
nw_swarm:
external: true
เดเดเดเดเตเดเตพ เดเดฐเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต (nw_swarm) เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเด เดชเดฐเดธเตเดชเดฐเด เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเตเด เดเดตเดฟเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด.
เดธเดฟเดธเตเดฑเตเดฑเด เดเดเดเดเตเดเตพ (redis, mysql เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเต) เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดเดเดเตเดเดณเตเดเต เดชเตเดคเตเดตเดพเดฏ เดชเตเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (เดชเตเดฒเดพเดจเตเดเดณเดฟเตฝ, เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดเดเดเตเดเดณเต เดธเตเดตเดจเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต). เดเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต เดตเดฟเดจเตเดฏเดพเดธ เดเดเตเดเด เดเดเตเดเดณเตเดเต เดเดฐเต เดตเดฒเดฟเดฏ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดค เดเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเตเดเตเดเต CMD เดเตเดฎเดพเดฑเตเดจเตเดจเดคเต เดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต, เดชเตเดคเตเดตเต, เดญเดพเดเด I-เตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดฒเตเดฒ. เดเดพเตป เดตเตเดฏเดคเตเดฏเดพเดธเดเตเดเตพ เดเดจเตเดจเดฟเดชเตเดชเดฑเดฏเดพเด:
- เดเดฟเดฑเตเดฑเต เดเตเดฒเตเตบ... โ เดตเดฟเดจเตเดฏเดพเดธเด เดจเดเดคเตเดคเดพเตป เดเดตเดถเตเดฏเดฎเดพเดฏ เดซเดฏเดฒเตเดเตพ เดเดเตเดเตพเดเตเดเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเต (createconfig.py, install_venv.sh, เดฎเตเดคเดฒเดพเดฏเดต)
- เดเตเดฐเตเดณเตเด... && เด เตบเดธเดฟเดชเตเดชเต... - เดฌเดฟเตฝเดกเต เดเตผเดเตเดเดฟเดซเดพเดเตเดฑเตเดฑเตเดเตพ เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดคเต เด เตบเดธเดฟเดชเตเดชเต เดเตเดฏเตเดฏเตเด (เดเดเดชเตเตฝ เดเตเดฏเตเดค เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตพ)
เดเดคเตเดตเดฐเต เดตเดฟเดตเดฐเดฟเดเตเดเดพเดคเตเดค เดเดฐเตเดฏเตเดฐเต เดชเตเดฐเดถเตเดจเด เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต: เดตเตเดฌเต เดเดจเตเดฑเตผเดซเตเดธเต เดเดณเตเดณ เดเดเดเดเตเดเตพ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเดเต เดฌเตเดฐเตเดธเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดฑเดฟเดตเตเดดเตเดธเต เดชเตเดฐเตเดเตเดธเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เด เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเดเตเดเดจเต:
.gitlab-ci.yml-เตฝ, เดเตเดฒเดธเตเดฑเตเดฑเตผ เดธเตเดฑเตเดฑเดพเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด, เดฌเดพเดฒเตปเดธเดฑเดฟเดจเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดฒเตเตป เดเตเตผเดเตเดเตเด (เด เดคเต, เดชเตเดฐเดคเดฟเดเตเดเดพเดฌเดฆเตเดงเดฎเดพเดเตเดฎเตเดชเตเตพ, เด เดคเดฟเดจเตเดฑเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดฎเดพเดคเตเดฐเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต (เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เด เดจเตเดธเดฐเดฟเดเตเดเต เดชเตเดคเดฟเดฏ nginx เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต: /etc/nginx/conf.d /${CI_COMMIT_REF_NAME}.conf) - docker-compose-nginx.yml เดเตเดกเต เดเดพเดฃเตเด)
- docker stack deploy -c docker-compose-nginx.yml ${CI_ENVIRONMENT_NAME} --with-registry-auth
docker-compose-nginx.yml
---
version: '3'
services:
nginx:
image: nginx:latest
environment:
CI_COMMIT_REF_NAME: ${CI_COMMIT_REF_NAME}
NGINX_CONFIG: |-
server {
listen 8080;
server_name staging_${CI_COMMIT_REF_NAME}_cluster.dev;
location / {
proxy_pass http://staging_${CI_COMMIT_REF_NAME}_cluster:8080;
}
}
server {
listen 5555;
server_name staging_${CI_COMMIT_REF_NAME}_cluster.dev;
location / {
proxy_pass http://staging_${CI_COMMIT_REF_NAME}_cluster:5555;
}
}
volumes:
- /tmp/staging/nginx:/etc/nginx/conf.d
command:
/bin/bash -c "echo -e "$$NGINX_CONFIG" > /etc/nginx/conf.d/${CI_COMMIT_REF_NAME}.conf;
nginx -g "daemon off;";
/etc/init.d/nginx reload"
ports:
- 8080:8080
- 5555:5555
- 3000:3000
- 443:443
- 80:80
deploy:
replicas: 1
placement:
constraints: [node.id == kilqc94pi2upzvabttikrfr5d]
restart_policy:
condition: none
networks:
nw_swarm:
networks:
nw_swarm:
external: true
เดกเดตเดฒเดชเตเดชเตผ เดเดฎเตเดชเตเดฏเตเดเตเดเดฑเตเดเดณเดฟเตฝ, เด เดชเตเดกเตเดฑเตเดฑเต /etc/hosts; url nginx เดเดฏเดฟ เดธเดเตเดเดฎเดพเดเตเดเตเด:
10.50.173.106 staging_BRANCH-1831_cluster.dev
เด
เดคเดฟเดจเดพเตฝ, เดเดฑเตเดฑเดชเตเดชเตเดเตเด เดธเตเดฑเตเดฑเตเดเดฟเดเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเดณเตเดเต เดตเดฟเดจเตเดฏเดพเดธเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟ, เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเต เด
เดตเดฐเตเดเต เดเดพเดธเตโเดเตเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดคเต เด
เดณเดตเดฟเดฒเตเด เดเดชเตเดชเตเตพ เด
เดต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเดจเดพเดเตเด.
เดญเดพเดตเดฟ เดชเดฐเดฟเดชเดพเดเดฟเดเดณเต:
- เดเดเตเดเดณเตเดเต เดเดเดเดเตเดเดณเต เดธเตเดตเดจเดเตเดเดณเดพเดฏเดฟ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเด
- เดเดฐเตเดจเตเดจเดฟเดจเตเด เดเดฐเต เดกเตเดเตเดเตผเดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเด
- เดธเตเดฑเตเดฑเดพเดเตเดเดฟเตฝ เดฒเตเดกเต เดเตเดฑเดเตเด เดจเตเดกเตเดเตพ เดธเตเดตเดฏเดฎเตเดต เดเดฃเตเดเตเดคเตเดคเตเด
- เดเดฐเต เดจเตเดฏเดฟเด เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเตเดกเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเด (เดฒเตเดเดจเดคเตเดคเดฟเดฒเต เดชเตเดฒเต เดเดกเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเดเดฐเด)
- เดธเตเดฑเตเดฑเดพเดเตเดเต เดจเดถเดฟเดเตเดเตเดตเตเดจเตเดจเต เดเดฐเต เดเตเดเตเดเต เดเตเตผเดเตเดเตเด
- เดชเดเตเดเต โฌ |
เดชเตเดฐเดคเตเดฏเตเดเด เดจเดจเตเดฆเดฟ
เด
เดตเดฒเดเดฌเด: www.habr.com