ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืื™ืš ืคึฟืึธืจืฉืœืึธื’ืŸ ืื™ืจ ืœื™ื™ืขื ืขืŸ ื“ื™ ื˜ืจืึทื ืกืงืจื™ืคึผื˜ ืคื•ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜ ืคื•ืŸ ืืœืขืงืกืื ื“ืขืจ ืกื™ื˜ืฉืึทื˜ืฉืขื•ื• ืคึฟื•ืŸ Inventos "ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker + Gitlab CI"

ื™ืขื ืข ื•ื•ืึธืก ื ืึธืจ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ Docker + Gitlab CI ืึธืคื˜ ืคืจืขื’ืŸ ื™ืงืขืจื“ื™ืง ืคึฟืจืื’ืŸ. ื•ื•ื• ืฆื• ืึธื ื”ื™ื™ื‘ืŸ? ื•ื•ื™ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ? ื•ื•ื™ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ?

ื“ืขืจ ื‘ืึทืจื™ื›ื˜ ืื™ื– ื’ื•ื˜ ื•ื•ื™ื™ึทืœ ืขืก ืจืขื“ื˜ ืื™ืŸ ืึท ืกื˜ืจืึทืงื˜ืฉืขืจื“ ื•ื•ืขื’ ื•ื•ืขื’ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ื ื™ืฆืŸ Docker ืื•ืŸ Gitlab CI. ื“ืขืจ ื‘ืึทืจื™ื›ื˜ ื–ื™ืš ืื™ื– ืคึฟื•ืŸ 2017. ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืึทื– ืคึฟื•ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜ ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื‘ืึทืกื™ืงืก, ืžืขื˜ืึทื“ืึทืœืึทื“ื–ืฉื™, ื’ืขื“ืึทื ืง ืื•ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืคื•ืŸ ื ื•ืฆืŸ.

ืคึฟืึทืจ ื•ื•ืขืจ ืขืก ื™ื– ืื™ื ื˜ืขืจืขืกื™ืจื˜, ื‘ื™ื˜ืข ื–ืขืŸ ืงืึทืฅ.

ืžื™ื™ึทืŸ ื ืึธืžืขืŸ ืื™ื– ืืœืขืงืกืื ื“ืขืจ ืกื™ื’ืึทื˜ืฉืขื•ื•. ืื™ืš ืึทืจื‘ืขื˜ ืคึฟืึทืจ Inventos. ืื™ืš ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ืขื’ืŸ ืžื™ื™ืŸ ื“ืขืจืคืึทืจื•ื ื’ ืžื™ื˜ ื“ืึธืงืขืจ ืื•ืŸ ื•ื•ื™ ืžื™ืจ ื‘ื™ืกืœืขื›ื•ื•ื™ื™ึทื– ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ืขืก ืื•ื™ืฃ ืคึผืจืึทื“ื–ืฉืขืงืก ืื™ืŸ ื“ื™ ืคื™ืจืžืข.

ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹ื“ืขืจ ื‘ืึทืจื™ื›ื˜: ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก ื ื™ืฆืŸ Docker ืื•ืŸ Gitlab CI.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืก ืื™ื– ืžื™ื™ืŸ ืฆื•ื•ื™ื™ื˜ืข ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืึธืงืงืขืจ. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทืจื™ื›ื˜, ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ Docker ื‘ืœื•ื™ื– ืื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ื™ืฃ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืžืืฉื™ื ืขืŸ. ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืžืคึผืœื•ื™ื™ื– ื•ื•ืึธืก ื’ืขื•ื•ื™ื™ื ื˜ ื“ืึธืงืงืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ืขื’ืŸ 2-3 ืžืขื ื˜ืฉืŸ. ื‘ื™ืกืœืขื›ืฐืฒ ื– ื”ื ื˜ ืžืข ืŸ ื–ื™ ืš ื’ืขื’ืจื™ื ื“ืข ื˜ ืื™ื‘ืขืจืœืขื‘ื•ื  ื’ ืื• ืŸ ืžื™ ืจ ื”ืื‘ ืŸ ื–ื™ ืš ื ื‘ื™ืก ืœ ืฐืฒื˜ืขืจ . ืœื™ื ืง ืฆื• ืื•ื ื“ื–ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทืจื™ื›ื˜.

ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜? ืžื™ืจ ื•ื•ืขืœืŸ ื˜ื™ื™ืœืŸ ืื•ื ื“ื–ืขืจ ื“ืขืจืคืึทืจื•ื ื’ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืจืึทืงืขืก ืžื™ืจ ื’ืขื–ืืžืœื˜, ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ืžื™ืจ ืกืึทืœื•ื•ื“. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ื˜ ืฉื™ื™ืŸ ืื•ืžืขื˜ื•ื, ืึธื‘ืขืจ ืขืก ืขืจืœื•ื™ื‘ื˜ ืื•ื ื“ื– ืฆื• ืžืึทืš ืื•ื™ืฃ.

ืื•ื ื“ื–ืขืจ ื“ืขื•ื•ื™ื–: ื“ืึธืงืขืจื™ื™ื– ืึทืœืฅ ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืื•ื ื“ื–ืขืจ ื”ืขื ื˜ ืื•ื™ืฃ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ื–ืขื ืขืŸ ืžื™ืจ ืกืึทืœื•ื•ื™ื ื’?

ื•ื•ืขืŸ ืึท ืคื™ืจืžืข ื”ืื˜ ืขื˜ืœืขื›ืข ื˜ื™ืžื–, ื“ื™ ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ืื™ื– ืึท ืฉืขืจื“ ืžื™ื˜ืœ. ืขืก ื–ืขื ืขืŸ ืกื˜ืึทื’ืขืก ื•ื•ืขืŸ ืึท ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ืื™ื– ืคึผื•ืœื“ ืื•ื™ืก ืคื•ืŸ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ื’ืขื’ืขื‘ืŸ ืฆื• ืืŸ ืื ื“ืขืจ ืคึผืจื•ื™ืขืงื˜ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืžืึธืœ.

ื›ึผื“ื™ ืึท ืคึผืจืึธื’ืจืึทืžื™ืกื˜ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื’ืขืฉื•ื•ื™ื ื“, ืขืจ ื“ืึทืจืฃ ืืจืืคืงืืคื™ืข ื“ื™ ืžืงื•ืจ ืงืึธื“ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืงืึทื˜ืขืจ ืึท ืกื•ื•ื™ื•ื•ืข ื•ื•ื™ ื’ืขืฉื•ื•ื™ื ื“ ื•ื•ื™ ืžืขื’ืœืขืš, ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืื™ื ืฆื• ืคืึธืจื–ืขืฆืŸ ืฆื• ืกืึทืœื•ื•ื™ื ื’ ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ืคื•ืŸ ื“ืขื ืคึผืจื•ื™ืขืงื˜.

ื™ื•ื–ืฉืึทื•ื•ืึทืœื™, ืื•ื™ื‘ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืคึฟื•ืŸ ืงืจืึทืฆืŸ, ืขืก ืื™ื– ืงืœื™ื™ืŸ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜. ื‘ืœื•ื™ื– ืึทืœื˜-ื˜ื™ื™ืžืขืจื– ื”ืึธื‘ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ื™ ืฆื• ืฉื˜ืขืœืŸ ืขืก. ืขืžืคึผืœื•ื™ื™ื– ืฉื˜ืขืœืŸ ื–ื™ืš ื–ื™ื™ืขืจ ื•ื•ืขืจืงืคึผืœื™ื™ืก ืื•ื™ืฃ ื–ื™ื™ืขืจ ืื™ื™ื’ืŸ ืื™ืŸ ืื™ื™ืŸ ืึธื“ืขืจ ืฆื•ื•ื™ื™ ื˜ืขื’. ืฆื• ืคืึทืจื’ื™ื›ืขืจืŸ ื“ืขื, ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ Docker.

ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืกื™ื‘ื” ืื™ื– ื“ื™ ืกื˜ืึทื ื“ืขืจื“ื™ื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ืกืขื˜ื˜ื™ื ื’ืก ืื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’. ืื™ืŸ ืžื™ื™ืŸ ื“ืขืจืคืึทืจื•ื ื’, ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืฉื˜ืขื ื“ื™ืง ื ืขืžืขืŸ ื“ื™ ืื™ื ื™ืฆื™ืื˜ื™ื•ื•. ืื™ืŸ ื™ืขื“ืขืจ ืคื™ื ืคื˜ ืคืึทืœ, ืึท ืžื ื”ื’ ืคืขืœื“ ืื™ื– ืืจื™ื™ืŸ, ืœืžืฉืœ vasya.dev. ืœืขื‘ืŸ ืžื™ืจ ืื™ื– ื’ืขื–ืขืกืŸ ืžื™ื™ืŸ ืฉื›ืŸ ืคึผืขื˜ื™ืึท, ื•ื•ืขืžืขื ืก ืคืขืœื“ ืื™ื– petya.dev. ื–ื™ื™ ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึท ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ืึธื“ืขืจ ืขื˜ืœืขื›ืข ืกื™ืกื˜ืขื ืงืึธืžืคึผืึธื ืขื ื˜ ื ื™ืฆืŸ ื“ืขื ืคืขืœื“ ื ืึธืžืขืŸ.

ื•ื•ืขืŸ ื“ื™ ืกื™ืกื˜ืขื ื•ื•ืืงืกื˜ ืื•ืŸ ื“ื™ ืคืขืœื“ ื ืขืžืขืŸ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ื–ื™ื™ืŸ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืึท ืงืึธื ืคืœื™ืงื˜ ืื™ืŸ ืื ื˜ื•ื•ื™ืงืœื•ื ื’ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืขืจื™ื™ื–ืึทื– ืื•ืŸ ื“ืขืจ ืคึผืœืึทืฅ ื•ื•ืขื’ ืื™ื– ืจื™ืจื™ื˜ืึทืŸ.

ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื–ืึทืš ื›ืึทืคึผืึทื ื– ืžื™ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกืขื˜ื˜ื™ื ื’ืก. ืขื˜ืœืขื›ืข ืžืขื ื˜ืฉืŸ ื˜ืึธืŸ ื ื™ื˜ ืึทืจืŸ ืžื™ื˜ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืื•ืŸ ืึทืจื‘ืขื˜ ืžื™ื˜ ืึท ืœื™ื™ื“ื™ืง ื•ื•ืึธืจืฆืœ ืคึผืึทืจืึธืœ. ืื™ืŸ ื“ืขืจ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ื‘ื™ื ืข, MySQL ื’ืขื‘ืขื˜ืŸ ืขืžืขืฆืขืจ ืคึฟืึทืจ ืึท ืคึผืึทืจืึธืœ ืื•ืŸ ื“ื™ ืคึผืึทืจืึธืœ ืื™ื– ื’ืขื•ื•ืขืŸ 123. ืขืก ืึธืคื˜ ื›ืึทืคึผืึทื ื– ืึทื– ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืงืึธื ืคื™ื’ ืื™ื– ืงืขืกื™ื™ื“ืขืจ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ื™ื‘ืขืจื’ืขื‘ืŸ. ืื™ื™ื ืขืจ ื”ืื˜ ืคืืจืจืื›ื˜ืŸ, ืื™ื™ื ืขืจ ื”ืื˜ ื ื™ืฉื˜ ืคืืจืจื™ื›ื˜ ื“ื™ ืงืื ืคื™ื’ื•ืจ. ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื˜ืจื™ืงืก ื•ื•ืขืŸ ืžื™ืจ ืฉื˜ืขืœืŸ ืขื˜ืœืขื›ืข ืคึผืจืึธื‘ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ืŸ .gitignore ืื•ืŸ ื™ืขื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื”ืื˜ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืืก ื’ืขืžืื›ื˜ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคึผืจืึธืฆืขืก ืžืขืจ ืฉื•ื•ืขืจ. ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข ื–ืื›ืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื’ืขื“ืขื ืงืขืŸ ื•ื•ืขื’ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ื™ ื“ืึทื˜ืึทื‘ืึทืกืข ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ื ื™ื˜ื™ืึทืœื™ื™ื–ื“, ืึท ืคึผืึทืจืึธืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืจืขื’ื™ืกื˜ืจื™ืจื˜, ืึท ื‘ืึทื ื™ืฆืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืจืขื’ื™ืกื˜ืจื™ืจื˜, ืึท ืฆื™ื™ื›ืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ, ืื•ืŸ ืึทื–ื•ื™ ืื•ื™ืฃ.

ืืŸ ืื ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืœื™ื™ื‘ืจืขืจื™ื–. ืขืก ืึธืคื˜ ื›ืึทืคึผืึทื ื– ืึทื– ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืจืึทื“ื–ืฉืขืงืก. ืขืก ืื™ื– ืึท ืœืขื’ืึทื˜ ืคึผืจื•ื™ืขืงื˜, ื•ื•ืึธืก ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ ืคื™ื ืฃ ื™ืึธืจ ืฆื•ืจื™ืง (ืคึฟื•ืŸ 2017 - ืจืขื“ืึทืงื˜ืึธืจ ืก ื˜ืึธืŸ). ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืžื™ืจ ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ MySQL 5.5. ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืžืึธื“ืขืจืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ื•ื•ื• ืžื™ืจ ื–ืขื ืขืŸ ื˜ืจื™ื™ื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืžืขืจ ืžืึธื“ืขืจืŸ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ MySQL, ืœืžืฉืœ 5.7 ืึธื“ืขืจ ืขืœื˜ืขืจ (ืื™ืŸ 2017 - ืจืขื“ืึทืงื˜ืึธืจ ืก ื˜ืึธืŸ)

ื•ื•ืขืจ ืขืก ื™ื– ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืžื™ื˜ MySQL ื•ื•ื™ื™ืกื˜ ืึทื– ื“ื™ ืœื™ื™ื‘ืจืขืจื™ื– ื”ืึธื‘ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–. ืขืก ืื™ื– ื’ืึทื ืฅ ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง ืฆื• ืœื•ื™ืคืŸ 2 ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฆื•ื–ืึทืžืขืŸ. ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ, ืขืก ืื™ื– ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืึทืœื˜ ืงืœื™ื™ืึทื ืฅ ืฆื• ื“ื™ ื ื™ื™ึทืข ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืขื ืื™ืŸ ืงืขืจ ื’ื™ื˜ ื”ืขื›ืขืจื•ื ื’ ืฆื• ืขื˜ืœืขื›ืข ืคืจืื‘ืœืขืžืขืŸ.

ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื•ื•ืขืŸ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืึท ื”ื™ื’ืข ืžืึทืฉื™ืŸ, ืขืจ ื ื™ืฆื˜ ื”ื™ื’ืข ืจืขืกื•ืจืกืŸ, ื”ื™ื’ืข ื˜ืขืงืขืก, ื”ื™ื’ืข ื‘ืึทืจืึทืŸ. ื›ืœ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืึท ืœื™ื™ื–ื•ื ื’ ืฆื• ืคึผืจืึธื‘ืœืขืžืก ืื™ื– ื’ืขืคื™ืจื˜ ืื•ื™ืก ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ื“ื™ ืคืึทืงื˜ ืึทื– ืขืก ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืื™ื™ืŸ ืžืึทืฉื™ืŸ. ื ื‘ื™ื™ืฉืคึผื™ืœ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื•ื•ืขืŸ ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืึทืงืขื ื“ ืกืขืจื•ื•ืขืจืก ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข 3, ืื•ืŸ ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืกืึทื•ื•ืขืก ื˜ืขืงืขืก ืฆื• ื“ื™ ื•ื•ืึธืจืฆืœ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื•ืŸ ืคึฟื•ืŸ ื“ืึธืจื˜ nginx ื ืขืžื˜ ื“ื™ ื˜ืขืงืขืก ืฆื• ืจื™ืกืคึผืึทื ื“ ืฆื• ื“ื™ ื‘ืงืฉื”. ื•ื•ืขืŸ ืึทื–ืึท ืงืึธื“ ืงื•ืžื˜ ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ื“ื™ ื˜ืขืงืข ืื™ื– ืคืึธืจืฉื˜ืขืœืŸ ืื•ื™ืฃ ืื™ื™ื ืขืจ ืคื•ืŸ 3 ืกืขืจื•ื•ืขืจืก.

ื“ืขืจ ืจื™ื›ื˜ื•ื ื’ ืคื•ืŸ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’. ื•ื•ืขืŸ ืžื™ืจ ื˜ื™ื™ืœืŸ ืื•ื ื“ื–ืขืจ ื’ืจื•ื™ืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ืขื˜ืœืขื›ืข ืงืœื™ื™ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ. ื“ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื– ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืึทืจื‘ืขื˜ ืึธื ืœื™ื™ื’ืŸ. ื“ืึธืก ืื•ื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื˜ื™ื™ืœืŸ ื“ื™ ืึทืจื‘ืขื˜ ืื•ืŸ ืฉื˜ื— ืคื•ืŸ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืฆื•ื•ื™ืฉืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก.

ื ืคืจืึธื ื˜ืขื ื“ ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืื™ืŸ JS, ื”ืื˜ ื›ืžืขื˜ ืงื™ื™ืŸ ื”ืฉืคึผืขื” ืื•ื™ืฃ ื“ื™ ื‘ืึทืงืขื ื“. ื“ื™ ื‘ืึทืงืขื ื“ ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ืื™ืŸ ืงืขืจ, ื“ืขื•ื•ืขืœืึธืคึผืก, ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืจื•ื‘ื™ ืื•ื™ืฃ ืจืึทื™ืœืก ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืจื™ื™ึทื ืžื™ืฉื  ื–ื™ืš ืžื™ื˜ ืคืจืึธื ืขื ื“. ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ื“ื™ API.

ื•ื•ื™ ืึท ื‘ืึธื ื•ืก, ืžื™ื˜ ื“ืึธืงืขืจ ืžื™ืจ ื–ืขื ืขืŸ ื‘ื™ื›ื•ืœืช ืฆื• ืจื™ืกื™ื™ืงืึทืœ ืจืขืกื•ืจืกืŸ ืื•ื™ืฃ ืกื˜ืึทื’ื™ื ื’. ื™ืขื“ืขืจ ืคึผืจื•ื™ืขืงื˜, ืจืขื›ื˜ ืฆื• ื–ื™ื™ึทืŸ ืกืคึผืขืกื™ืคื™ืงืก, ืคืืจืœืื ื’ื˜ ื–ื™ื›ืขืจ ืกืขื˜ื˜ื™ื ื’ืก. ืคื™ื–ื™ืงืœื™, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื ื™ื™ื˜ื™ืง ืฆื• ืึทืœืึทืงื™ื™ื˜ ืึธื“ืขืจ ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ื–ื™ื™ ืกืขืคึผืขืจืึทื˜ืœื™, ืึธื“ืขืจ ื˜ื™ื™ืœืŸ ืขื˜ืœืขื›ืข ืžื™ืŸ ืคื•ืŸ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ืงืขืŸ ื”ืฉืคึผืขื” ื™ืขื“ืขืจ ืื ื“ืขืจืข, ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืœื™ื™ื‘ืจืขืจื™ื–.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืžื›ืฉื™ืจื™ื. ื•ื•ืึธืก ื˜ืึธืŸ ืžื™ืจ ื ื•ืฆืŸ?

  • ื“ืึธืงืขืจ ื–ื™ืš. ื Dockerfile ื‘ืืฉืจื™ื™ื‘ื˜ ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืคื•ืŸ ืึท ืื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.
  • Docker-compose ืื™ื– ืึท ืคึผืขืงืœ ื•ื•ืึธืก ื‘ืจืขื ื’ื˜ ืฆื•ื–ืึทืžืขืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ื“ืึธืงืงืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.
  • ืžื™ืจ ื ื•ืฆืŸ GitLab ืฆื• ืงืจืึธื ืžืงื•ืจ ืงืึธื“.
  • ืžื™ืจ ื ื•ืฆืŸ GitLab-CI ืคึฟืึทืจ ืกื™ืกื˜ืขื ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืขืจ ื‘ืืจื™ื›ื˜ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืฆื•ื•ื™ื™ ื˜ื™ื™ืœืŸ.

ื“ืขืจ ืขืจืฉื˜ืขืจ ื˜ื™ื™ืœ ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ื™ ืฆื• ืœื•ื™ืคืŸ Docker ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก 'ืžืืฉื™ื ืขืŸ.

ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ ื˜ื™ื™ืœ ื•ื•ืขื˜ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ GitLab, ื•ื•ื™ ืžื™ืจ ืœื•ื™ืคืŸ ื˜ืขืกืฅ ืื•ืŸ ื•ื•ื™ ืžื™ืจ ืจืึธื•ืœื“ ืื•ื™ืก ืฆื• ืกื˜ืึทื’ื™ื ื’.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืงืขืจ ืื™ื– ืึท ื˜ืขื›ื ืึธืœืึธื’ื™ืข ื•ื•ืึธืก ืึทืœืึทื•ื– (ื ื™ืฆืŸ ืึท ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืข ืฆื•ื’ืึทื ื’) ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืงืึทืžืคึผืึธื•ื ืึทื ืฅ. ื“ืึธืก ืื™ื– ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ Dockerfile. ื“ืึธ ืžื™ืจ ื“ืขืจืงืœืขืจืŸ ืึทื– ืžื™ืจ ื™ืจืฉืขื ืขืŸ ืคึฟื•ืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ืคื•ืŸ Ruby:2.3.0. ืขืก ื›ึผื•ืœืœ ืจื•ื‘ื™ ื•ื•ืขืจืกื™ืข 2.3 ืื™ื ืกื˜ืึทืœื™ืจืŸ. ืžื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืœื™ื™ื‘ืจืขืจื™ื– ืื•ืŸ NodeJS. ืžื™ืจ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทื– ืžื™ืจ ืฉืึทืคึฟืŸ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ /app. ืžื™ืจ ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ืึทืคึผ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื•ื•ื™ ื“ื™ ืึทืจื‘ืขื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ืื™ืŸ ื“ืขื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืžื™ืจ ืฉื˜ืขืœืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ืžื™ื ื™ืžื•ื Gemfile ืื•ืŸ Gemfile.lock. ื“ืขืจื ืึธืš ืžื™ืจ ื‘ื•ื™ืขืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ื•ื•ืึธืก ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืขื ื“ืขืคึผืขื ื“ืขื ืกื™ ื‘ื™ืœื“. ืžื™ืจ ืึธื ื•ื•ื™ื™ึทื–ืŸ ืึทื– ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืจื™ื™ื˜ ืฆื• ื”ืขืจืŸ ืื•ื™ืฃ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคึผืึธืจื˜ 3000. ื“ื™ ืœืขืฆื˜ืข ื‘ืึทืคึฟืขืœ ืื™ื– ื“ืขืจ ื‘ืึทืคึฟืขืœ ื•ื•ืึธืก ื’ืœื™ื™ืš ืœืึธื ื˜ืฉื™ื– ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืื•ื™ื‘ ืžื™ืจ ื•ื™ืกืคื™ืจืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืœื•ื™ืคืŸ ื‘ืึทืคึฟืขืœ, ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืœื•ื™ืคืŸ ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ืกืคึผืขืกืึทืคื™ื™ื“ ื‘ืึทืคึฟืขืœ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืก ืื™ื– ืึท ืžื™ื ื™ืžืึทืœ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื“ืึธืงืงืขืจ-ืงืึธืžืคึผืึธืกืข ื˜ืขืงืข. ืื™ืŸ ื“ืขื ืคืึทืœ, ืžื™ืจ ื•ื•ื™ื™ึทื–ืŸ ืึทื– ืขืก ืื™ื– ืึท ืงืฉืจ ืฆื•ื•ื™ืฉืŸ ืฆื•ื•ื™ื™ ืงืึทื ื˜ื™ื™ื ืขืจื–. ื“ืึธืก ืื™ื– ื’ืœื™ื™ึทืš ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื™ื ืกื˜ ืื•ืŸ ื•ื•ืขื‘ ืกืขืจื•ื•ื™ืก. ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ืจื•ื‘ึฟ ืงืึทืกืขืก ื“ืึทืจืคืŸ ืขื˜ืœืขื›ืข ืกืึธืจื˜ ืคื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ ืึท ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ืกื˜ืึธืจื™ื ื’ ื“ืึทื˜ืŸ. ื–ื™ื ื˜ ืžื™ืจ ื ื•ืฆืŸ MySQL, ื“ืขืจ ื‘ื™ื™ืฉืคึผื™ืœ ืื™ื– ืžื™ื˜ MySQL - ืึธื‘ืขืจ ื’ืึธืจื ื™ืฉื˜ ืคึผืจื™ื•ื•ืขื ืฅ ืื•ื ื“ื– ืคื•ืŸ ื ื™ืฆืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข ื“ืึทื˜ืึทื‘ื™ื™ืก (PostgreSQL, Redis).

ืžื™ืจ ื ืขืžืขืŸ ื“ื™ MySQL 5.7.14 ื‘ื™ืœื“ ืึธืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืคึฟื•ืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืžืงื•ืจ ืคึฟื•ืŸ ื“ื™ ื“ืึธืงืขืจ ื›ืึทื‘. ืžื™ืจ ืงืœื™ื™ึทื‘ืŸ ื“ื™ ื‘ื™ืœื“ ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึฟื•ืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ. ื‘ืขืฉืึทืก ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืึทื˜ืขืจ, ืขืจ ืงืึทืœืขืงืฅ ืึท ื‘ื™ืœื“ ืคึฟืึทืจ ืื•ื ื“ื–. ื“ืขืจื ืึธืš ืขืก ืœื•ื™ืคื˜ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ืึธืก ืžื™ืจ ื“ื•ืจื›ืคื™ืจืŸ ื“ืึธ. ืื•ื™ื‘ ืžื™ืจ ื’ื™ื™ืŸ ืฆื•ืจื™ืง, ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืึทื– ื“ื™ ืงืึทื˜ืขืจ ื‘ืึทืคึฟืขืœ ืื™ื– ื“ื™ืคื™ื™ื ื“ ื“ื•ืจืš ืคึผื•ืžืึท. ืคึผื•ืžืึท ืื™ื– ืึท ื“ื™ื ืกื˜ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ืจื•ื‘ื™. ืื™ืŸ ื“ื™ ืจื’ืข ืคืึทืœ ืžื™ืจ ืึธื•ื•ื•ืขืจืจื™ื™ื“. ื“ืขืจ ื‘ืึทืคึฟืขืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืึธื“ืขืจ ื˜ืึทืกืงืก.

ืžื™ืจ ืื•ื™ืš ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคืึธืจื•ื™ืก ื“ื™ ืคึผืึธืจื˜ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื‘ืึทืœืขื‘ืึธืก ืžืึทืฉื™ืŸ ืคึฟื•ืŸ 3000 ืฆื• 3000 ืงืึทื ื˜ื™ื™ื ืขืจ ืคึผืึธืจื˜. ื“ืึธืก ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ื™ืคึผื˜ืึทื‘ืœืขืก ืื•ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืžืขืงืึทื ื™ื–ืึทื, ื•ื•ืึธืก ืื™ื– ื’ืœื™ื™ึทืš ืขืžื‘ืขื“ื™ื“ ืื™ืŸ ื“ืึธืงืงืขืจ.

ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืงืขื ืขืŸ, ื•ื•ื™ ืคืจื™ืขืจ, ืึทืงืกืขืก ืงื™ื™ืŸ ื‘ื ื™ืžืฆื IP ืึทื“ืจืขืก, ืœืžืฉืœ, 127.0.0.1 ื”ื™ื’ืข ืึธื“ืขืจ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง IP ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืžืึทืฉื™ืŸ.

ื“ื™ ืœืขืฆื˜ืข ืฉื•ืจื” ื–ืื’ื˜ ืึทื– ื“ืขืจ ื•ื•ืขื‘ ืงืึทื ื˜ื™ื™ื ืขืจ ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ื“ื‘ ืงืึทื ื˜ื™ื™ื ืขืจ. ื•ื•ืขืŸ ืžื™ืจ ืจื•ืคืŸ ื“ืขื ื•ื•ืขื‘ ืงืึทื ื˜ื™ื™ื ืขืจ ืฆื• ืงืึทื˜ืขืจ, docker-compose ื•ื•ืขื˜ ืขืจืฉื˜ืขืจ ืงืึทื˜ืขืจ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟืึทืจ ืื•ื ื“ื–. ืฉื•ื™ืŸ ื‘ื™ื™ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก (ืื™ืŸ ืคืึทืงื˜, ื ืึธืš ื“ื™ ืงืึทื˜ืขืจ ืคื•ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ! ื“ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื’ืึทืจืึทื ื˜ื™ืจืŸ ื“ื™ ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก) ืขืก ื•ื•ืขื˜ ืงืึทื˜ืขืจ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืื•ื ื“ื–ืขืจ ื‘ืึทืงืขื ื“.

ื“ืึธืก ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืขืจืจืึธืจืก ื•ื•ืขืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ื ื™ืฉื˜ ืึทืจื•ื™ืฃ ืื•ืŸ ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ืฉืคึผืึธืจืŸ ืจืขืกื•ืจืกืŸ ื•ื•ืขืŸ ืžื™ืจ ื”ืึทืœื˜ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืงืึทื ื˜ื™ื™ื ืขืจ, ืื•ืŸ ื“ืขืจืžื™ื˜ ืคืจื™ื™ ืจืขืกื•ืจืกืŸ ืคึฟืึทืจ ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ื’ื™ื˜ ืื•ื ื“ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ืึธืงืขืจื™ื–ืึทื˜ื™ืึธืŸ ืื™ืŸ ืึท ืคึผืจื•ื™ืขืงื˜? ืžื™ืจ ืจืขืงืึธืจื“ื™ืจืŸ ื“ื™ MySQL ื•ื•ืขืจืกื™ืข ืคึฟืึทืจ ืึทืœืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก. ื“ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืขื˜ืœืขื›ืข ืขืจืจืึธืจืก ื•ื•ืึธืก ืงืขืŸ ืคึผืึทืกื™ืจืŸ ื•ื•ืขืŸ ื•ื•ืขืจืกื™ืขืก ื“ื™ื•ื•ืขืจื“ื–ืฉ, ื•ื•ืขืŸ ื“ื™ ืกื™ื ื˜ืึทืงืก, ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ืคืขืœื™ืงื™ื™ึทื˜ ืกืขื˜ื˜ื™ื ื’ืก ื˜ื•ื™ืฉืŸ. ื“ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ืคึผืจืึธืกื˜ ื”ืึธืกื˜ื ืึทืžืข ืคึฟืึทืจ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืœืึธื’ื™ืŸ, ืคึผืึทืจืึธืœ. ืžื™ืจ ื–ืขื ืขืŸ ืžืึธื•ื•ื™ื ื’ ืึทื•ื•ืขืง ืคื•ืŸ ื“ืขืจ ื–ืึธืึธืœืึธื’ื™ืฉืขืจ ื’ืึธืจื˜ืŸ ืคื•ืŸ ื ืขืžืขืŸ ืื•ืŸ ืงืึธื ืคืœื™ืงื˜ ืื™ืŸ ืงืึธื ืคื™ื’ ื˜ืขืงืขืก ื•ื•ืึธืก ืขืงืกื™ืกื˜ื™ืจื˜ ืคืจื™ืขืจ.

ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ืึท ืžืขืจ ืึธืคึผื˜ื™ืžืึทืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืกื•ื•ื™ื•ื•ืข, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜. MySQL ืื™ื– ืงืึทื ืคื™ื’ื™ืขืจื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืคึฟืึทืจ ืฉื•ื•ืึทืš ืžืืฉื™ื ืขืŸ ืื•ืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ ืื™ื– ื–ื™ื™ืขืจ ื ื™ื“ืขืจื™ืง.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืงืขืจ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื ื•ืฆืŸ ื“ื™ Python, Ruby, NodeJS, PHP ื™ื‘ืขืจื–ืขืฆืขืจ ืคื•ืŸ ื“ืขืจ ื’ืขื•ื•ืืœื˜ ื•ื•ืขืจืกื™ืข. ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ื“ื™ ื ื•ื™ื˜ ืฆื• ื ื•ืฆืŸ ืขื˜ืœืขื›ืข ื•ื•ืขืจืกื™ืข ืคืึทืจื•ื•ืึทืœื˜ืขืจ. ื‘ื™ื– ืึทื”ืขืจ, ืึท ืจืคึผื ืคึผืขืงืœ ืื™ื– ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืจื•ื‘ื™, ื•ื•ืึธืก ืขืจืœื•ื™ื‘ื˜ ืื™ืจ ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืคึผืจื•ื™ืขืงื˜. ื“ืึทื ืง ืฆื• ื“ื™ ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ, ื“ืึธืก ืื•ื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืกืžื•ื“ืœื™ ืžื™ื™ื’ืจื™ื™ื˜ ืงืึธื“ ืื•ืŸ ื•ื•ืขืจืกื™ืข ืขืก ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–. ืžื™ืจ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ืคึผืจืึธื‘ืœืขื ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื‘ื™ื™ื“ืข ื“ื™ ื™ื‘ืขืจื–ืขืฆืขืจ ืื•ืŸ ื“ื™ ืงืึธื“. ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ื•ื•ืขืจืกื™ืข, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ื™ื“ืขืจื™ืงืขืจ ื“ืขืจ ืึทืœื˜ ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ืŸ ื›ืึทืคึผืŸ ื“ื™ ื ื™ื™ึท ืงืึทื ื˜ื™ื™ื ืขืจ. ืื•ื™ื‘ ืขืคึผืขืก ื’ื™ื™ื˜ ืคืึทืœืฉ, ืžื™ืจ ืงืขื ืขืŸ ื ื™ื“ืขืจื™ืงืขืจ ื“ืขืจ ื ื™ื™ึท ืงืึทื ื˜ื™ื™ื ืขืจ, ื›ืึทืคึผืŸ ื“ื™ ืึทืœื˜ ืงืึทื ื˜ื™ื™ื ืขืจ.

ื ืึธืš ื‘ื•ื™ืขืŸ ื“ื™ ื‘ื™ืœื“, ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ื‘ื™ื™ื“ืข ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ ื–ืขืœื‘ืข. ื“ืึธืก ืื™ื– ืกืคึผืขืฆื™ืขืœ ืืžืช ืคึฟืึทืจ ื’ืจื•ื™ืก ื™ื ืกื˜ืึทืœื™ื™ืฉืึทื ื–.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI ืื•ื™ืฃ ืคืจืึธื ื˜ืขื ื“ ืžื™ืจ ื ื•ืฆืŸ JavaScipt ืื•ืŸ NodeJS.

ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืื•ื ื“ื–ืขืจ ืœืขืฆื˜ืข ืคึผืจื•ื™ืขืงื˜ ืื•ื™ืฃ ReacJS. ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืœืึธื ื˜ืฉื˜ ืึทืœืฅ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืžื™ื˜ ื”ื™ื™ืก ืจื™ืœืึธื•ื“.

ื“ืขืจื ืึธืš, ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืึทืกืขืžื‘ืึทืœื™ื ื’ JavaScipt ืื™ื– ืœืึธื ื˜ืฉื˜ ืื•ืŸ ื“ื™ ืกื˜ืึทื˜ื™ืงืœื™ ืึทืกืขืžื‘ืึทืœื“ ืงืึธื“ ืื™ื– ื’ืขืฉื™ืงื˜ ื“ื•ืจืš nginx, ืฉืคึผืึธืจืŸ ืจืขืกื•ืจืกืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธ ืื™ืš ื”ืึธื‘ืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืึท ื“ื™ืึทื’ืจืึทืžืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืœืขืฆื˜ ืคึผืจื•ื™ืขืงื˜.

ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ื”ืึธื‘ืŸ ืื™ืจ ืกืึธืœื•ื•ืข? ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื ื•ื™ื˜ ืฆื• ื‘ื•ื™ืขืŸ ืึท ืกื™ืกื˜ืขื ืžื™ื˜ ื•ื•ืึธืก ืจื™ืจืขื•ื•ื“ื™ืง ื“ืขื•ื•ื™ืกืขืก ื™ื ื˜ืขืจืึทืงื˜. ื–ื™ื™ ื‘ืึทืงื•ืžืขืŸ ื“ืึทื˜ืŸ. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืกืึทื‘ื™ืœืึทื˜ื™ื– ืื™ื– ืฆื• ืฉื™ืงืŸ ืฉื˜ื•ืคึผืŸ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ืฆื• ื“ืขื ืžื™ื˜ืœ.

ื•ื•ืึธืก ื”ืึธื‘ืŸ ืžื™ืจ ื’ืขื˜ืืŸ ืคึฟืึทืจ ื“ืขื?

ืžื™ืจ ืฆืขื˜ื™ื™ืœื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ: ืึท ืึทื“ืžื™ืŸ ื˜ื™ื™ืœ ืื™ืŸ JS, ืึท ื‘ืึทืงืขื ื“ ื•ื•ืึธืก ืึทืจื‘ืขื˜ ื“ื•ืจืš ืึท REST ืฆื•ื‘ื™ื ื“ ืื•ื ื˜ืขืจ Ruby on Rails. ื‘ืึทืงืขื ื“ ื™ื ื˜ืขืจืึทืงืฅ ืžื™ื˜ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืึธืก ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืื™ื– ื’ืขื’ืขื‘ืŸ ืฆื• ื“ืขืจ ืงืœื™ืขื ื˜. ื“ืขืจ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ื˜ืึทืคืœื™ืข ื™ื ื˜ืขืจืึทืงืฅ ืžื™ื˜ ื“ื™ ื‘ืึทืงืขื ื“ ืื•ืŸ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื•ืจืš ืึท REST ืฆื•ื‘ื™ื ื“.

ืžื™ืจ ืื•ื™ืš ื”ืึธื‘ืŸ ืึท ื ื•ื™ื˜ ืฆื• ืฉื™ืงืŸ ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–. ืื™ื™ื“ืขืจ ื“ืขื, ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื•ื•ืึธืก ืึท ืžืขืงืึทื ื™ื–ืึทื ืื™ื– ื’ืขื•ื•ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ืฆื• ืจื™ืจืขื•ื•ื“ื™ืง ืคึผืœืึทื˜ืคืึธืจืžืก.

ืžื™ืจ ื”ืึธื‘ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื™ ืคืืœื’ืขื ื“ืข ืกื›ืขืžืข: ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ืคื•ืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ื™ื ื˜ืขืจืึทืงืฅ ืžื™ื˜ ื“ื™ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ื˜ืึทืคืœื™ืข, ื“ืขืจ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ื˜ืึทืคืœื™ืข ื™ื ื˜ืขืจืึทืงืฅ ืžื™ื˜ ื“ื™ ื‘ืึทืงืขื ื“, ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ืฉื™ืงืŸ ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–.

ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ื™ื ื˜ืขืจืึทืงื˜ ืžื™ื˜ ืืŸ ืื ื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ NodeJS.

ืงื™ื•ื– ื–ืขื ืขืŸ ื’ืขื‘ื•ื™ื˜ ืื•ืŸ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืœื•ื™ื˜ ื–ื™ื™ืขืจ ืื™ื™ื’ืŸ ืžืขืงืึทื ื™ื–ืึทื.

ืฆื•ื•ื™ื™ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื–ืขื ืขืŸ ืฆื™ืขืŸ ื“ืึธ. ื“ืขืจื•ื•ื™ื™ึทืœ, ื ื™ืฆืŸ ื“ืึธืงืขืจ, ืžื™ืจ ื ื•ืฆืŸ 2 ืคืจื™ื™ึท ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขื’ ืคืืจื‘ื•ื ื“ืŸ ืฆื• ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืคืึทืงื˜ ืึทื– ื–ื™ื™ ื”ืึธื‘ืŸ ืึท ืคึผืจืึธืกื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ื ืขืฅ, ืื•ืŸ ื’ืฉืžื™ื•ืช ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ืžืึทืฉื™ืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ื™ ื–ืขืœื‘ืข ื–ืึทืš ืึธื‘ืขืจ ืื™ืŸ ื ื•ืžืขืจืŸ. ืงืึธื“ ืจื™ื™ื•ืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ื“ืึธ.

ืื•ื™ื‘ ืคืจื™ืขืจ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ืจื™ื•ื–ื™ื ื’ ืงืึธื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืœื™ื™ื‘ืจืขืจื™ื–, ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื“ื–ืขืจ ื“ื™ื ืกื˜, ื•ื•ืึธืก ืจื™ืกืคึผืึทื ื“ื– ืฆื• ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–, ืื™ื– ืจื™ื•ื–ื“ ื•ื•ื™ ืึท ื’ืึทื ืฅ ืกืขืจื•ื•ืขืจ. ืขืก ื’ื™ื˜ ืึทืŸ API. ืื•ืŸ ืื•ื ื“ื–ืขืจ ื ื™ื™ึทืข ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื™ื ื˜ืขืจืึทืงืฅ ืžื™ื˜ ืื™ื.

ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ืขืจืกื™ืข 4 ืคื•ืŸ NodeJS. ืื™ืฆื˜ (ืื™ืŸ 2017 - ืจืขื“ืึทืงื˜ืึธืจ ืก ื˜ืึธืŸ) ืื™ืŸ ืื•ื ื“ื–ืขืจ ืœืขืฆื˜ืข ื“ื™ื•ื•ืขืœืึทืคึผืžืึทื ืฅ ืžื™ืจ ื ื•ืฆืŸ ื•ื•ืขืจืกื™ืข 7 ืคื•ืŸ NodeJS. ืขืก ืื™ื– ืงื™ื™ืŸ ืคึผืจืึธื‘ืœืขื ืื™ืŸ ื ื™ื™ึทืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืฆื• ืึทืจื™ื™ึทื ืฆื™ืขืŸ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืœื™ื™ื‘ืจืขืจื™ื–.

ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง, ืื™ืจ ืงืขื ืขืŸ ืจืขืคืึทืงื˜ืึธืจ ืื•ืŸ ื›ืึทืคึผืŸ ื“ื™ NodeJS ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ Push ืึธื ื–ืึธื’ ื“ื™ื ืกื˜.

ืื•ืŸ ืื•ื™ื‘ ืžื™ืจ ืงืขื ืขืŸ ื”ืึทืœื˜ืŸ ืึทืคึผื™ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ืขืก ืžื™ื˜ ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืจื™ืขืจ ื’ืขื•ื•ื™ื™ื ื˜.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ื˜ืึธืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ืึธืงืขืจ? ืžื™ืจ ืœื™ื™ื’ืŸ ืึท Dockerfile ืฆื• ืื•ื ื“ื–ืขืจ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ื•ื•ืึธืก ื‘ืืฉืจื™ื™ื‘ื˜ ื“ื™ ื ื™ื™ื˜ื™ืง ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–. ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื–ืขื ืขืŸ ืœืึทื“ื–ืฉื™ืงืœื™ ืฆืขื˜ื™ื™ืœื˜. ื“ืึธืก ืื™ื– ื“ื™ ืžื™ื ื™ืžื•ื ืงื™ื˜ ืคึฟืึทืจ ืึท ื‘ืึทืงืขื ื“ ื“ืขื•ื•ืขืœืึธืคึผืขืจ.

ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜, ืžื™ืจ ืžืึทื›ืŸ ืึท ื“ืึธืงืงืขืจืคื™ืœืข ืื•ืŸ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ื™ืงืึธื•ืกื™ืกื˜ืึทื (Python, Ruby, NodeJS). ืื™ืŸ ื“ืึธืงืขืจ-ืงืึธืžืคึผืึธืกืข, ืขืก ื‘ืืฉืจื™ื™ื‘ื˜ ื“ื™ ื ื™ื™ื˜ื™ืง ื“ืขืคึผืขื ื“ืขื ืกื™ - ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืžื™ืจ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืคื•ืŸ ืึทื–ืึท ืื•ืŸ ืึทื–ืึท ืึท ื•ื•ืขืจืกื™ืข, ืฆื• ืงืจืึธื ื“ืึทื˜ืŸ ื“ืึธืจื˜ ืื•ืŸ ื“ืึธืจื˜.

ืžื™ืจ ื ื•ืฆืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื“ืจื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ nginx ืฆื• ื“ื™ื ืขืŸ ืกื˜ืึทื˜ื™ืง ืื™ื ื”ืึทืœื˜. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฆื•ืคึฟืขืœื™ืงืขืจ ื‘ื™ืœื“ืขืจ. ื“ื™ ื‘ืึทืงืขื ื“ ืฉื˜ืขืœืŸ ื–ื™ื™ ืื™ืŸ ืึท ืคืึทืจ-ืฆื•ื’ืขื’ืจื™ื™ื˜ ื‘ืึทื ื“, ื•ื•ืึธืก ืื™ื– ืื•ื™ืš ืžืึธื•ื ื˜ืขื“ ืื™ืŸ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ nginx, ื•ื•ืึธืก ื’ื™ื˜ ืกื˜ืึทื˜ื™ืง ื“ืึทื˜ืŸ.

ืฆื• ืงืจืึธื ื“ื™ nginx ืื•ืŸ mysql ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืžื™ืจ ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื“ืึธืงืงืขืจ ื˜ืขืงืข ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ืงืจืึธื ื“ื™ ื ื™ื™ื˜ื™ืง ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–. ื•ื•ืขืŸ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืžืื›ื˜ ืึท ื’ื™ื˜ ืงืœืึธื•ืŸ ืคื•ืŸ ืึท ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืื•ื™ืฃ ื–ื™ื™ืŸ ืžืึทืฉื™ืŸ, ืขืจ ื”ืื˜ ืฉื•ื™ืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ื’ืจื™ื™ื˜ ืคึฟืึทืจ ื”ื™ื’ืข ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’. ืขืก ืื™ื– ืงื™ื™ืŸ ืงืฉื™ื ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืคึผืึธืจื˜ ืึธื“ืขืจ ื•ื•ืึธืก ืกืขื˜ื˜ื™ื ื’ืก ืฆื• ืฆื•ืœื™ื™ื’ืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ื™ื™ึทื˜ืขืจ ืžื™ืจ ื”ืึธื‘ืŸ ืขื˜ืœืขื›ืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ: ืึทื“ืžื™ืŸ, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข-ืึทืคึผื™, ืฉื˜ื•ืคึผืŸ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–.

ืื™ืŸ ืกื“ืจ ืฆื• ืงืึทื˜ืขืจ ืึทืœืข ื“ืขื, ืžื™ืจ ื‘ืืฉืืคืŸ ืืŸ ืื ื“ืขืจ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื’ืขืจื•ืคึฟืŸ ื“ืึธืงืขืจื™ื™ื–ื“-ืึทืคึผ. ืžื™ืจ ื“ืขืจื•ื•ื™ื™ึทืœ ื ื•ืฆืŸ ืงื™ื™ืคืœ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ื– ืคึฟืึทืจ ื™ืขื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜. ื–ื™ื™ ื–ืขื ืขืŸ ืคืฉื•ื˜ ืœืึทื“ื–ืฉื™ืงืœื™ ืึทื ื“ืขืจืฉ - ืื™ืŸ GitLab ืขืก ืงื•ืงื˜ ื•ื•ื™ ืึท ื˜ืขืงืข, ืึธื‘ืขืจ ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ืžืึทืฉื™ืŸ ืขืก ืงื•ืงื˜ ื•ื•ื™ ืึท ื˜ืขืงืข ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืจื•ื™ืขืงื˜. ืื™ื™ืŸ ืžื“ืจื’ื” ืื•ื ื˜ืŸ ื–ืขื ืขืŸ ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืึทืžื‘ื™ื™ื ื“.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืก ืื™ื– ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ืึธืงืขืจื™ื™ื–ื“-ืึทืคึผ. ืžื™ืจ ืื•ื™ืš ืฉื˜ืขืœืŸ ืึท ื“ืึธืงืงืขืจ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื“ืึธ, ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ืคึผืœืึธืžื‘ื™ืจืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ืคื•ืŸ ืึทืœืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ. ืขืก ืื™ื– ืึท README.md ื•ื•ืึธืก ื‘ืขืงื™ืฆืขืจ ื‘ืืฉืจื™ื™ื‘ื˜ ื•ื•ื™ ืฆื• ืงืึทื˜ืขืจ ื“ื™ ืคึผืจื•ื™ืขืงื˜.

ื“ืึธ ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขื•ื•ืขื ื“ื˜ ืฆื•ื•ื™ื™ ื“ืึธืงืงืขืจ-ืงืึธืžืคึผืึธืกืข ื˜ืขืงืขืก. ื“ืึธืก ืื™ื– ื’ืขื˜ืืŸ ืื™ืŸ ืกื“ืจ ืฆื• ืงืขื ืขืŸ ืฆื• ืงืึทื˜ืขืจ ืื™ืŸ ืกื˜ืึทื’ืขืก. ื•ื•ืขืŸ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ื™ ืงืขืจืŸ, ืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคึฟืŸ ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–, ืขืจ ืคืฉื•ื˜ ืœืึธื ื˜ืฉื™ื– ื“ื™ ื“ืึธืงืงืขืจ-ืงืึธืžืคึผืึธืกืข ื˜ืขืงืข ืื•ืŸ, ืึทืงืึธืจื“ื™ื ื’ืœื™, ืจืขืกื•ืจืกืŸ ื–ืขื ืขืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜.

ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื ื•ื™ื˜ ืคึฟืึทืจ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืžื™ื˜ ืคึผื•ืฉ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื–, docker-compose.yaml ืื•ืŸ docker-compose-push.yaml ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜.

ื–ื™ื ื˜ docker-compose.yaml ืื•ืŸ docker-compose-push.yaml ื–ืขื ืขืŸ ืื™ืŸ ื“ืขืจ ื˜ืขืงืข, ืึท ืื™ื™ืŸ ื•ื•ื™ืจื˜ื•ืึทืœ ื ืขืฅ ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื‘ืืฉืืคืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ. ื“ืึธืก ืื™ื– ืึท ืžืขืจ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ื˜ืขืงืข ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืงืึทืœืขืงื˜ื™ื ื’ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ. ื•ื•ืืก ืื™ื– ื“ื ืžืขืจืงื•ื•ื™ืจื“ื™ืง? ื“ืึธ ืžื™ืจ ื‘ืึทืงืขื ืขืŸ ื“ื™ ื‘ืึทืœืึทื ืกืขืจ ืงืึธืžืคึผืึธื ืขื ื˜.

ื“ืึธืก ืื™ื– ืึท ืคืึทืจื˜ื™ืง ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ื•ื•ืึธืก ืœื•ื™ืคื˜ nginx ืื•ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืœื™ืกืึทื ื– ืฆื• ื“ื™ ื“ืึธืงืงืขืจ ื›ืึธืœืขืœ. ื“ื™ื ืึทืžื™ืฉ, ื•ื•ืขืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ืื•ื™ืกื’ืขื“ืจื™ื™ื˜ ืื•ื™ืฃ ืื•ืŸ ืึทื•ื•ืขืง, ื“ื™ nginx config ืื™ื– ืจื™ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื“. ืžื™ืจ ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื“ื™ ื”ืึทื ื“ืœื™ื ื’ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื ื™ืฆืŸ ื“ืจื™ื˜-ืžื“ืจื’ื” ืคืขืœื“ ื ืขืžืขืŸ.

ืคึฟืึทืจ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืกื•ื•ื™ื•ื•ืข ืžื™ืจ ื ื•ืฆืŸ ื“ื™ .dev ืคืขืœื“ - api.informer.dev. ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธื ืก ืžื™ื˜ ืึท. ื“ืขื•ื• ืคืขืœื“ ื–ืขื ืขืŸ ื‘ื ื™ืžืฆื ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ื”ื™ื’ืข ืžืึทืฉื™ืŸ.

ื“ืขืจื ืึธืš ื“ื™ ืงืึธื ืคื™ื’ืก ื–ืขื ืขืŸ ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ื™ืขื“ืขืจ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืึทืœืข ืคึผืจืึทื“ื–ืฉืขืงืก ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜ ืฆื•ื–ืึทืžืขืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืื•ื™ื‘ ืžื™ืจ ืฉื™ืœื“ืขืจืŸ ืขืก ื’ืจืึทืคื™ืงืœื™, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื– ื“ืขืจ ืงืœื™ืขื ื˜ ืื™ื– ืื•ื ื“ื–ืขืจ ื‘ืœืขื˜ืขืจืขืจ ืึธื“ืขืจ ืึท ืžื™ืŸ ืคื•ืŸ ื’ืขืฆื™ื™ึทื’ ืžื™ื˜ ื•ื•ืึธืก ืžื™ืจ ืžืึทื›ืŸ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ื‘ืึทืœืึทื ืกืขืจ.

ื“ืขืจ ื‘ืึทืœืึทื ืกืขืจ ื“ื™ื˜ืขืจืžืึทื ื– ื•ื•ืึธืก ืงืึทื ื˜ื™ื™ื ืขืจ ื“ืึทืจืฃ ื–ื™ื™ืŸ ืึทืงืกืขืกื˜ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืคืขืœื“ ื ืึธืžืขืŸ.

ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ nginx, ื•ื•ืึธืก ื’ื™ื˜ JS ืฆื• ื“ื™ ืึทื“ืžื™ืŸ ื˜ืึทืคืœื™ืข. ื“ืขื ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ื“ื•ืจืš nginx, ื•ื•ืึธืก ื’ื™ื˜ ื“ื™ ืึทืคึผื™, ืึธื“ืขืจ ืกื˜ืึทื˜ื™ืง ื˜ืขืงืขืก, ื•ื•ืึธืก ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš nginx ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืœืึธื•ื“ื™ื ื’ ื‘ื™ืœื“ืขืจ.

ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ื•ื•ื™ื™ื–ื˜ ืึทื– ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ืึท ื•ื•ื™ืจื˜ื•ืึทืœ ื ืขืฅ ืื•ืŸ ืคืึทืจื‘ืึธืจื’ืŸ ื”ื™ื ื˜ืขืจ ืึท ืคึผืจืึทืงืกื™.

ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ืžืึทืฉื™ืŸ, ืื™ืจ ืงืขื ืขืŸ ืึทืงืกืขืก ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ ื“ื™ IP, ืึธื‘ืขืจ ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ื“ืขื. ืขืก ืื™ื– ืคึผืจืึทืงื˜ืึทืงืœื™ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืคึฟืึทืจ ื“ื™ืจืขืงื˜ ืงืึธื ื˜ืึทืงื˜.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ื‘ื™ื™ืฉืคึผื™ืœ ื–ืึธืœ ืื™ืš ืงื•ืงืŸ ืื™ืŸ ืฆื• ื“ืึทืงืขืจื™ื™ื– ืžื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ? ืื™ืŸ ืžื™ื™ืŸ ืžื™ื™ื ื•ื ื’, ืึท ื’ื•ื˜ ื‘ื™ื™ึทืฉืคึผื™ืœ ืื™ื– ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื“ืึธืงืงืขืจ ื‘ื™ืœื“ ืคึฟืึทืจ MySQL.

ืขืก ืื™ื– ื’ืึทื ืฅ ืงืึธืžืคึผืœื™ืฆื™ืจื˜. ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ื•ื•ืขืจืกื™ืขืก. ืึธื‘ืขืจ ื–ื™ื™ึทืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื“ืขืงืŸ ืคื™ืœืข ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ื•ื•ืึธืก ืงืขืŸ ืื•ื™ืคืฉื˜ื™ื™ืŸ ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’. ืื•ื™ื‘ ืื™ืจ ื ืขืžืขืŸ ื“ื™ ืฆื™ื™ื˜ ืื•ืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ืขืก ืึทืœืข ื™ื ื˜ืขืจืึทืงืฅ, ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืื™ืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ ืžื™ื˜ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ืขืก ื–ื™ืš.

Hub.docker.com ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื›ึผื•ืœืœ ืœื™ื ืงืก ืฆื• github.com, ื•ื•ื• ืจื•ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื’ืœื™ื™ึทืš ืคึฟื•ืŸ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ื‘ื•ื™ืขืŸ ืึท ื‘ื™ืœื“ ื–ื™ืš.

ื•ื•ื™ื™ึทื˜ืขืจ ืื™ืŸ ื“ืขื ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืขืก ืื™ื– ืึท ืฉืจื™ืคื˜ docker-endpoint.sh, ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื“ื™ ืขืจืฉื˜ ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ ืื•ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึทื˜ืขืจ.

ืื•ื™ืš ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืขืก ืื™ื– ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื ื™ืฆืŸ ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–. ื“ื•ืจืš ื“ื™ืคื™ื™ื ื™ื ื’ ืึท ื™ื ื•ื•ื™ื™ืจืึทื ืžืขื ืึทืœ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ืึท ืื™ื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ืึธื“ืขืจ ื“ื•ืจืš docker-compose, ืžื™ืจ ืงืขื ืขืŸ ื–ืึธื’ืŸ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืึท ืœื™ื™ื“ื™ืง ืคึผืึทืจืึธืœ ืคึฟืึทืจ ื“ืึธืงืงืขืจ ืคึฟืึทืจ ื•ื•ืึธืจืฆืœ ืื•ื™ืฃ MySQL ืึธื“ืขืจ ื•ื•ืขืœื›ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ.

ืขืก ืื™ื– ืึทืŸ ืึธืคึผืฆื™ืข ืฆื• ืฉืึทืคึฟืŸ ืึท ื˜ืจืึทืค ืคึผืึทืจืึธืœ. ืžื™ืจ ื–ืึธื’ืŸ ืึทื– ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท ื‘ืึทื ื™ืฆืขืจ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืึท ืคึผืึทืจืึธืœ ืคึฟืึทืจ ื“ื™ ื‘ืึทื ื™ืฆืขืจ, ืื•ืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก.

ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคึผืจืึทื“ื–ืฉืขืงืก, ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื‘ื™ืกืœ ื™ื•ื ืึทืคื™ื™ื“ ื“ื™ Dockerfile, ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ. ื“ืึธืจื˜ ืžื™ืจ ืึทื“ื–ืฉืึทืกื˜ื™ื“ ืขืก ืฆื• ืื•ื ื“ื–ืขืจ ื“ืึทืจืฃ ืฆื• ืคืฉื•ื˜ ื™ืงืกืคึผืึทื ื“ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืจืขื›ื˜ ื•ื•ืึธืก ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื ื™ืฆื˜. ื“ืึธืก ื”ืึธื˜ ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืฉืึทืคึฟืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึทื ืกืึธื•ืœ ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜. ืจื•ื‘ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื”ืึธื‘ืŸ ืงืึทืžืึทื ื“ื– ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’, ืžืึทื“ืึทืคื™ื™ื™ื ื’ ืื•ืŸ ื•ื™ืกืžืขืงืŸ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื–.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืก ืื™ื– ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื•ื•ื™ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹MySQL ืงื•ืงื˜ ื•ื•ื™ ืื•ื™ืฃ github.com. ืื™ืจ ืงืขื ื˜ ืขืคึฟืขื ืขืŸ ื“ื™ Dockerfile ืื•ืŸ ื–ืขืŸ ื•ื•ื™ ื“ื™ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ื ืขืžื˜ ืึธืจื˜ ื“ืึธืจื˜.

docker-endpoint.sh ืฉืจื™ืคื˜ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื“ื™ ืคึผืึธื–ื™ืฆื™ืข ืคื•ื ื˜. ื‘ืขืฉืึทืก ืขืจืฉื˜ ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ, ืขื˜ืœืขื›ืข ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ืคืืจืœืื ื’ื˜ ืื•ืŸ ืึทืœืข ื“ื™ ืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ื™ื ืงืœื•ื“ืขื“ ืื™ืŸ ื“ื™ ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืฉืจื™ืคื˜.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืœืืžื™ืจ ื’ืฒืŸ ื•ื•ื™ื™ื˜ืขืจ ืฆื•ื ืฆื•ื•ื™ื™ื˜ืŸ ื˜ื™ื™ืœ.

ืžื™ืจ ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื’ื™ื˜ืœืึทื‘ ืฆื• ืงืจืึธื ืžืงื•ืจ ืงืึธื•ื“ื–. ื“ืึธืก ืื™ื– ืึท ื’ืึทื ืฅ ืฉื˜ืึทืจืง ืกื™ืกื˜ืขื ื•ื•ืึธืก ื”ืื˜ ืึท ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ ืฆื•ื‘ื™ื ื“.

ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ Gitlab ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ื– Gitlab CI. ืขืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืงืึทืžืึทื ื“ื– ื•ื•ืึธืก ื•ื•ืขื˜ ื“ืขืจื ืึธืš ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืึท ืงืึธื“ ืขืงืกืคึผืจืขืก ืกื™ืกื˜ืขื ืึธื“ืขืจ ืœื•ื™ืคืŸ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื˜ืขืกื˜ื™ื ื’.

ื‘ืืจื™ื›ื˜ ื•ื•ืขื’ืŸ Gitlab CI 2 https://goo.gl/uohKjI - ื“ืขืจ ื‘ืึทืจื™ื›ื˜ ืคื•ืŸ ื“ืขื ืจื•ื‘ื™ ืจื•ืกืœืึทื ื“ ืงืœื•ื‘ ืื™ื– ื’ืึทื ืฅ ื“ื™ื˜ื™ื™ืœื“ ืื•ืŸ ืงืขืŸ ื–ื™ื™ืŸ ืคื•ืŸ ืื™ื ื˜ืขืจืขืก ืฆื• ืื™ืจ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื•ื•ืึธืก ืื™ื– ืคืืจืœืื ื’ื˜ ืฆื• ืึทืงื˜ืึทื•ื•ื™ื™ื˜ Gitlab CI. ืื™ืŸ ืกื“ืจ ืฆื• ืงืึทื˜ืขืจ Gitlab CI, ืžื™ืจ ื ืึธืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ .gitlab-ci.yml ื˜ืขืงืข ืื™ืŸ ื“ืขืจ ื•ื•ืึธืจืฆืœ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜.

ื“ืึธ ืžื™ืจ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทื– ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืึท ืกื™ืงื•ื•ืึทื ืก ืคื•ืŸ ืฉื˜ืึทื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืคึผืจื•ื‘ื™ืจืŸ, ื“ื™ืคึผืœื•ื™ืžืึทื ื˜.

ืžื™ืจ ื•ื™ืกืคื™ืจืŸ ืกืงืจื™ืคึผืก ื•ื•ืึธืก ื’ืœื™ื™ืš ืจื•ืคืŸ ื“ื™ ื“ืึธืงืขืจ-ืงืึธืžืคึผืึธืกืข ื‘ื•ื™ืขืŸ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ืึธืก ืื™ื– ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื‘ืœื•ื™ื– ื“ื™ ื‘ืึทืงืขื ื“.

ื•ื•ื™ื™ึทื˜ืขืจ ืžื™ืจ ื–ืึธื’ืŸ ืึทื– ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืœื•ื™ืคืŸ ืžื™ื™ื’ืจื™ื™ืฉืึทื ื– ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืœื•ื™ืคืŸ ื˜ืขืกืฅ.

ืื•ื™ื‘ ื“ื™ ืกืงืจื™ืคึผืก ื–ืขื ืขืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืจื™ื›ื˜ื™ืง ืื•ืŸ ื˜ืึธืŸ ื ื™ื˜ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื˜ืขื•ืช ืงืึธื“, ื“ื™ ืกื™ืกื˜ืขื ื’ื™ื™ื˜ ืฆื• ื“ื™ ืจื’ืข ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ืคึผืœื•ื™ืžืึทื ื˜.

ื“ื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื‘ื™ื ืข ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ ืกื˜ืึทื’ื™ื ื’. ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืึธืจื’ืึทื ื™ื–ื™ืจื˜ ืงื™ื™ืŸ ื“ืึทื•ื ื˜ื™ื™ื ืจื™ืกื˜ืึทืจื˜.

ืžื™ืจ ืคืึธืจืกืึทื‘ืœื™ ืคืึทืจืœืขืฉืŸ ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื–, ืื•ืŸ ื“ืขืžืึธืœื˜ ืžื™ืจ ื›ืึทืคึผืŸ ืึทืœืข ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจื– ื•ื•ื™ื“ืขืจ, ื’ืขื–ืืžืœื˜ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ื™ื ืข ื‘ืขืฉืึทืก ื˜ืขืกื˜ื™ื ื’.

ืœืึธืžื™ืจ ืœื•ื™ืคืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื™ื’ืจื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ื“ื•ืจืš ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคึฟืึทืจ ื“ื™ ืงืจืึทื ื˜ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืกื•ื•ื™ื•ื•ืข.

ืขืก ืื™ื– ืึท ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ื“ืึธืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื•ื•ืขื ื“ื˜ ื‘ืœื•ื™ื– ืฆื• ื“ื™ ื‘ืขืœ ืฆื•ื•ื™ื™ึทื’.

ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ ื•ื•ืขืŸ ื˜ืฉืึทื ื’ื™ื ื’ ืื ื“ืขืจืข ืฆื•ื•ื™ื™ื’ืŸ.

ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืจืึธืœืึธื•ื•ืฅ ืฆื•ื–ืืžืขืŸ ืฆื•ื•ื™ื™ื’ืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื“ืขื ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ Gitlab Runner.

ื“ื™ ื ื•ืฆืŸ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ Golang. ืขืก ืื™ื– ืึท ืื™ื™ืŸ ื˜ืขืงืข ื•ื•ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืื™ืŸ ื“ื™ ื’ืึธืœืึทื ื’ ื•ื•ืขืœื˜, ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืึทืจืคืŸ ืงื™ื™ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–.

ื‘ื™ื™ ืกื˜ืึทืจื˜ืึทืคึผ ืžื™ืจ ืจืขื’ื™ืกื˜ืจื™ืจืŸ Gitlab Runner.

ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ืขื ืฉืœื™ืกืœ ืื™ืŸ ื“ื™ Gitlab ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“.

ื“ืขืจื ืึธืš ืžื™ืจ ืจื•ืคืŸ ื“ื™ ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ื‘ืึทืคึฟืขืœ ืื•ื™ืฃ ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”.

ืงืึทื ืคื™ื’ื™ืขืจ Gitlab Runner ืื™ืŸ ื“ื™ืึทืœืึธื’ ืžืึธื“ืข (ืฉืขืœ, ื“ืึธืงืงืขืจ, VirtualBox, SSH)

ื“ื™ ืงืึธื“ ืื•ื™ืฃ Gitlab Runner ื•ื•ืขื˜ ื•ื™ืกืคื™ืจืŸ ืื•ื™ืฃ ื™ืขื“ืขืจ ื™ื‘ืขืจื’ืขื‘ืŸ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ .gitlab-ci.yml ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ื™ ืขืก ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ ืงื•ืงื˜ ืื™ืŸ Gitlab ืื™ืŸ ื“ื™ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“. ื ืึธืš ืงืึทื ืขืงื˜ื™ื ื’ GItlab CI, ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคืึธืŸ ื•ื•ืึธืก ื•ื•ื™ื™ื–ื˜ ืื™ืŸ ื•ื•ืึธืก ืฉื˜ืึทื˜ ื“ื™ ื‘ื•ื™ืขืŸ ืื™ื– ืื™ืŸ ื“ืขืจ ืžืึธืžืขื ื˜.

ืžื™ืจ ื–ืขืŸ ืึทื– 4 ืžื™ื ื•ื˜ ืฆื•ืจื™ืง ืื™ื– ื’ืขืžืื›ื˜ ืึท ืงืึธืžืžื™ื˜ ื•ื•ืึธืก ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ืึทืœืข ื“ื™ ื˜ืขืกืฅ ืื•ืŸ ื”ืื˜ ื ื™ืฉื˜ ื’ืขืคึฟื™ืจื˜ ืงื™ื™ืŸ ืคืจืื‘ืœืขืžืขืŸ.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืžื™ืจ ืงืขื ืขืŸ ืงื•ืงืŸ ืื™ืŸ ื“ื™ ื‘ื™ืœื“ืขืจ ืื™ืŸ ืžืขืจ ื“ืขื˜ืึทืœ. ื“ืึธ ืžื™ืจ ื–ืขืŸ ืึทื– ืฆื•ื•ื™ื™ ืฉื˜ืึทื˜ืŸ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ. ื˜ืขืกื˜ื™ื ื’ ืกื˜ืึทื˜ื•ืก ืื•ืŸ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืกื˜ืึทื˜ื•ืก ืื™ืŸ ืกื˜ืึทื’ื™ื ื’.

ืื•ื™ื‘ ืžื™ืจ ื“ืจื™ืงื˜ ืื•ื™ืฃ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื‘ื•ื™ืขืŸ, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืึทื ืกืึธื•ืœ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืงืึทืžืึทื ื“ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜ ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืœื•ื™ื˜ .gitlab-ci.yml.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื“ืึธืก ืื™ื– ื•ื•ื™ ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืคึผืจืึธื“ื•ืงื˜ ืงื•ืงื˜ ื•ื•ื™. ืžื™ ืจ ื–ืขืขืŸ , ื ื– ืข ืก ื–ืฒื ืข ืŸ ื’ืขืฐืข ืŸ ื’ืขืœื•ื ื’ืขื  ืข ืคืจื•ื•ื•ืŸ . ื•ื•ืขืŸ ื“ื™ ื˜ืขืกืฅ ื–ืขื ืขืŸ ื“ืขืจืœืื ื’ื˜, ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ืžืึทืš ืฆื• ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืฉืจื™ื˜ ืื•ืŸ ื“ื™ ืกื˜ืึทื’ื™ื ื’ ืงืึธื“ ืื™ื– ื ื™ืฉื˜ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ื”ืึธื‘ืŸ ืžื™ืจ ืกืึธืœื•ื•ืข ืื™ืŸ ืกื˜ืึทื’ื™ื ื’ ื•ื•ืขืŸ ืžื™ืจ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ืึธืงืขืจ? ืื•ื ื“ื–ืขืจ ืกื™ืกื˜ืขื ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื•ืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจื™ืกื˜ืึทืจื˜ ื‘ืœื•ื™ื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™, ืื•ืŸ ื ื™ืฉื˜ ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื.

ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ื”ืึธื‘ืŸ ืฆื• ืฆืขื˜ื™ื™ืœืŸ ืึทืœืฅ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืคืึธืœื“ืขืจืก.

ื ืึธืš ื“ืขื, ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ื“ืขื ืคืึทืงื˜ ืึทื– Docker-compose ืงืจื™ื™ื™ืฅ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื ืขืฅ ืคึผืœืึทืฅ ืคึฟืึทืจ ื™ืขื“ืขืจ ื˜ืขืงืข ืื•ืŸ ืงืขืŸ ื ื™ืฉื˜ ื–ืขืŸ ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื•ืŸ ื–ื™ื™ืŸ ื—ื‘ืจ.

ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึทืจื•ื, ืžื™ืจ ื‘ืืฉืืคืŸ ื“ื™ ื ืขืฅ ืžืึทื ื™ื•ืึทืœื™ ืื™ืŸ ื“ืึธืงืงืขืจ. ืื™ืŸ Docker-compose ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ืึทื– ืื™ืจ ื–ืึธืœ ื ื•ืฆืŸ ืึทื–ืึท ืึท ื ืขืฅ ืคึฟืึทืจ ื“ืขื ืคึผืจื•ื™ืขืงื˜.

ืื–ื•ื™, ื™ืขื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ืกื˜ืึทืจืฅ ืžื™ื˜ ื“ืขื ื™ื™ื’ืœ ื–ืขื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ ืื ื“ืขืจืข ืคึผืึทืจืฅ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื.

ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื“ื™ื•ื•ื™ื™ื“ื™ื ื’ ืกื˜ืึทื’ื™ื ื’ ืฆื•ื•ื™ืฉืŸ ืขื˜ืœืขื›ืข ืคึผืจืึทื“ื–ืฉืขืงืก.

ื–ื™ื ื˜ ืคึฟืึทืจ ืึทืœืข ื“ืขื ืฆื• ืงื•ืงืŸ ืฉื™ื™ืŸ ืื•ืŸ ื•ื•ื™ ื ืึธืขื ื˜ ื•ื•ื™ ืžืขื’ืœืขืš ืฆื• ืคึผืจืึธื“ื•ืงืฆื™ืข, ืขืก ืื™ื– ื’ื•ื˜ ืฆื• ื ื•ืฆืŸ ืคึผืึธืจื˜ 80 ืึธื“ืขืจ 443, ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืื•ืžืขื˜ื•ื ืื™ืŸ ื“ื™ ื•ื•ืขื‘.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ื™ ืึทื–ื•ื™ ื”ืึธื‘ืŸ ืžื™ืจ ื“ืึธืก ืกืึทืœื•ื•ื“? ืžื™ืจ ื”ืึธื‘ืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืื™ื™ืŸ ื’ื™ื˜ืœืึทื‘ ืจืึทื ืขืจ ืฆื• ืึทืœืข ื’ืจื•ื™ืก ืคึผืจืึทื“ื–ืฉืขืงืก.

ื’ื™ื˜ืœืึทื‘ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืงืึทื˜ืขืจ ืขื˜ืœืขื›ืข ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ Gitlab ืจืึทื ืขืจื–, ื•ื•ืึธืก ื•ื•ืขื˜ ืคืฉื•ื˜ ื ืขืžืขืŸ ืึทืœืข ื“ื™ ื˜ืึทืกืงืก ืื™ื™ื ืขืจ ื“ื•ืจืš ืื™ื™ื ืขืจ ืื™ืŸ ืึท ื›ืึทืึธื˜ื™ืฉ ืกื“ืจ ืื•ืŸ ืœื•ื™ืคืŸ ื–ื™ื™.

ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื”ื•ื™ื– ืคึผืจืึธื‘ืœืขืžืก, ืžื™ืจ ืœื™ืžื™ื˜ืขื“ ื“ื™ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืคึผืจืึทื“ื–ืฉืขืงืก ืฆื• ืื™ื™ืŸ ื’ื™ื˜ืœืึทื‘ ืจืึทื ืขืจ, ื•ื•ืึธืก ืงืึธืคึผืข ืžื™ื˜ ืื•ื ื“ื–ืขืจ ื•ื•ืึทืœื™ื•ืžื– ืึธืŸ ืคืจืื‘ืœืขืžืขืŸ.

ืžื™ืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ nginx-proxy ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืึทื˜ืขืจ ืฉืจื™ืคื˜ ืื•ืŸ ื’ืขืฉืจื™ื‘ืŸ ื“ื™ ื’ืจื™ื“ืก ืคื•ืŸ ืึทืœืข ืคึผืจืึทื“ื–ืฉืขืงืก ืื™ืŸ ืขืก.

ืื•ื ื“ื–ืขืจ ืคึผืจื•ื™ืขืงื˜ ื”ืื˜ ืื™ื™ืŸ ื’ืจื™ื“, ืื•ืŸ ื“ื™ ื‘ืึทืœืึทื ืกืขืจ ื”ืื˜ ืขื˜ืœืขื›ืข ื’ืจื™ื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืจื•ื™ืขืงื˜ ื ืขืžืขืŸ. ืขืก ืงืขื ืขืŸ ืคึผืจืึทืงืกื™ ื•ื•ื™ื™ึทื˜ืขืจ ื“ื•ืจืš ืคืขืœื“ ื ืขืžืขืŸ.

ืื•ื ื“ื–ืขืจ ืจื™ืงื•ื•ืขืก ืงื•ืžืขืŸ ื“ื•ืจืš ื“ื™ ืคืขืœื“ ืื•ื™ืฃ ืคึผืึธืจื˜ 80 ืื•ืŸ ื–ืขื ืขืŸ ืจื™ื–ืึทืœื•ื•ื“ ืฆื• ืึท ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืงืึทื ื˜ื™ื™ื ืขืจื– ื•ื•ืึธืก ืกืขืจื•ื•ืขืก ื“ืขื ืคืขืœื“.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื•ื•ืึธืก ืื ื“ืขืจืข ืคืจืื‘ืœืขืžืขืŸ ื–ืขื ืขืŸ ื“ืึธืจื˜? ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืึทืœืข ืงืึทื ื˜ื™ื™ื ืขืจื– ืœื•ื™ืคืŸ ื•ื•ื™ ื•ื•ืึธืจืฆืœ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜. ื“ืึธืก ืื™ื– ื“ืขืจ ื•ื•ืึธืจืฆืœ ืึทื ื™ืงื•ื•ืึทืœ ื•ื•ืึธืจืฆืœ ื‘ืึทืœืขื‘ืึธืก ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื.

ืึธื‘ืขืจ, ืื•ื™ื‘ ืื™ืจ ืึทืจื™ื™ึทืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื•ื•ืึธืจืฆืœ ืื•ืŸ ื“ื™ ื˜ืขืงืข ื•ื•ืึธืก ืžื™ืจ ืžืึทื›ืŸ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ื‘ืึทืงื•ืžืขืŸ ื•ื•ืึธืจืฆืœ ืจืขื›ื˜.

ืื•ื™ื‘ ืึท ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืื™ื– ืืจื™ื™ืŸ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ืŸ ื’ืขืžืื›ื˜ ืขื˜ืœืขื›ืข ืงืึทืžืึทื ื“ื– ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื˜ืขืงืขืก, ื“ืขืžืึธืœื˜ ืœื™ื ืงืก ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ, ื“ืขืžืึธืœื˜ ืื™ืŸ ื–ื™ื™ืŸ ืึทืจื‘ืขื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืขืจ ื”ืื˜ ืึท ื˜ืขืงืข ืฆื• ื•ื•ืึธืก ืขืจ ื”ืื˜ ื ื™ืฉื˜ ืึทืงืกืขืก.

ื•ื•ื™ืื–ื•ื™ ืงืขืŸ ืžืขืŸ ื“ืืก ืื•ื™ืกืœื™ื™ื–ืŸ? ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื’ืŸ ื™ื•ื–ืขืจื– ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ.

ื•ื•ืึธืก ืคึผืจืึธื‘ืœืขืžืก ืื•ื™ืคืฉื˜ื™ื™ืŸ ื•ื•ืขืŸ ืžื™ืจ ืฆื•ื’ืขื’ืขื‘ืŸ ื“ืขื ื‘ืึทื ื™ืฆืขืจ?

ื•ื•ืขืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื‘ืึทื ื™ืฆืขืจ, ื“ื™ ื’ืจื•ืคึผืข ืฉื™ื™ึทืŸ (UID) ืื•ืŸ ื‘ืึทื ื™ืฆืขืจ ืฉื™ื™ึทืŸ (GID) ืึธืคื˜ ื˜ืึธืŸ ื ื™ื˜ ื’ืœื™ื™ึทื›ืŸ.

ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ืžื™ืจ ื ื•ืฆืŸ ื ื™ืฆืขืจืก ืžื™ื˜ ID 1000.

ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ื“ืึธืก ืื™ื– ืงืึธื•ืึทื ืกื™ื™ื“ืึทื“ ืžื™ื˜ ื“ื™ ืคืึทืงื˜ ืึทื– ื›ึผืžืขื˜ ืึทืœืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื ื•ืฆืŸ Ubuntu OS. ืื•ืŸ ืื™ืŸ ื•ื‘ื•ื ื˜ื• ืึทืก ื“ืขืจ ืขืจืฉื˜ืขืจ ื‘ืึทื ื™ืฆืขืจ ื”ืื˜ ID 1000.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ื”ืึธื‘ืŸ ืžื™ืจ ืคึผืœืึทื ื–?

ืœื™ื™ืขื ืขืŸ ื“ื™ ื“ืึธืงืงืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืึทืงื˜ื™ื•ื•ืœื™ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’, ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ื˜ืฉืึทื ื’ื™ื ื’. ื“ืึทื˜ืŸ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืงื•ืžืขืŸ ืฆื•ื•ื™ื™ ืึธื“ืขืจ ื“ืจื™ื™ ื—ื“ืฉื™ื ืฆื•ืจื™ืง ืื™ื– ืกืœืึธื•ืœื™ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“.

ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคืจืื‘ืœืขืžืขืŸ ื•ื•ืึธืก ืžื™ืจ ืกืึทืœื•ื•ื“ ืงืขืŸ ื–ื™ื™ืŸ ืฉื•ื™ืŸ ืกืึทืœื•ื•ื“ ื“ื•ืจืš ื ืึธืจืžืึทืœ ืžื™ื˜ืœืขืŸ.

ืื™ืš ื˜ืึทืงืข ื•ื•ื™ืœืŸ ืฆื• ืžืึทืš ืื•ื™ืฃ ืื•ืŸ ืžืึทืš ื’ืœื™ื™ึทืš ืฆื• ืึธืจืงืขืกื˜ืจืึทื˜ื™ืึธืŸ.

ืื™ื™ืŸ ื‘ื™ื™ืฉืคึผื™ืœ ืื™ื– ื“ืึธืงืขืจ ืก ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืžืขืงืึทื ื™ื–ืึทื ื’ืขืจื•ืคืŸ Docker Swarm, ื•ื•ืึธืก ืงื•ืžื˜ ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ. ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืงืึทื˜ืขืจ ืขืคึผืขืก ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ Docker Swarm ื˜ืขื›ื ืึธืœืึธื’ื™ืข.

ืกืคึผืึทื ื™ื ื’ ืงืึทื ื˜ื™ื™ื ืขืจื– ืžืื›ื˜ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืœืึธื’ืก ื•ืžื‘ืึทืงื•ื•ืขื. ืื™ืฆื˜ ื“ื™ ืœืึธื’ืก ื–ืขื ืขืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜. ื–ื™ื™ ื–ืขื ืขืŸ ืฆืขื•ื•ืึธืจืคืŸ ืื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื˜ืึทืกืงืก ืื™ื– ืฆื• ืžืึทื›ืŸ ื‘ืึทืงื•ื•ืขื ืึทืงืกืขืก ืฆื• ืœืึธื’ืก ื“ื•ืจืš ืึท ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“.

ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืคึผืจืึธืฆืขืก ืžื™ื˜ Docker ืื•ืŸ Gitlab CI

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’