Pipenv: ์ถ”๊ฐ€ ์ƒ‰์ธ URL ์ธ์ฆ์€ ์ง€์ •๋œ ๊ฒฝ์šฐ์—๋„ ๋Œ€ํ™”ํ˜•์ž…๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 12์›” 04์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pypa/pipenv

์ถ”๊ฐ€ ์ƒ‰์ธ URL์— ๋Œ€ํ•œ ์ธ์ฆ์€ ์ถ”๊ฐ€ ์ƒ‰์ธ URL ์ž์ฒด์— ์ธ์ฆ์ด ์ง€์ •๋œ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉ์ž ๋Œ€ํ™”์‹ ์ธ์ฆ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์„ค๋ช…
  1. ์•„์น˜ ๋ฆฌ๋ˆ…์Šค
  2. ํŒŒ์ด์ฌ ๋ฒ„์ „: Python 3.6.3
  3. Pipenv ๋ฒ„์ „: pipenv, version 8.3.2
์˜ˆ์ƒ ๊ฒฐ๊ณผ

๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ•˜๋ฉด [[source]] ์ธ์ฆ ์ •๋ณด๋ฅผ (์˜ˆ๋ฅผ ๋“ค์–ด์žˆ๋Š” URL๋กœ https://user:password@host/pypi/simple ), ์ธ์ฆ ์ •๋ณด๋ฅผ ์š”๊ตฌํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ
$ pipenv lock --verbose
Locking [dev-packages] dependenciesโ€ฆ
Using pip: -i https://pypi.python.org/simple --extra-index-url https://xxxUSERxxx:xxxPASSWORDxxx@xxxHOSTxxx/xxxPATHxxx/pypi/simple

                          ROUND 1
Current constraints:
  xxx
  xxx
  xxx

Finding the best candidates:
User for xxxxxxxx:

๊ทธ๋Ÿฐ ๋‹ค์Œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

๋ณต์ œ ๋‹จ๊ณ„
  1. ๊ธฐ๋ณธ http ์ธ์ฆ์ด ํ•„์š”ํ•œ URL์ด ์žˆ๋Š” Pipfile [[source]] ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ง€์ •๋œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Pipfile ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: package_name: {version="*", index="index_name"} .
  3. pipenv lock ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ pipenv ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. virtualenv ์™ธ๋ถ€์˜ ์ผ๋ฐ˜ pip ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ CI ๋ฐ ๋„์ปค์™€ ํ•จ๊ป˜ ๊ฐœ์ธ pip ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถ๊ธˆํ•ดํ•˜๋Š” ์‚ฌ๋žŒ์€ ์ธ์ฆ๊ณผ ํ•จ๊ป˜ PIP_EXTRA_INDEX_URL ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ VCS์— ์ฒดํฌ์ธ๋˜์ง€ ์•Š์€ .env ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CI ๋„๊ตฌ๊ฐ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •์˜์— ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์œผ๋กœ ์›๊ฒฉ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ GUI ๋˜๋Š” CLI ์„ค์ •์—์„œ). docker ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ --build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ด€๋ จ ์ด์Šˆ(#1020)์— ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด์ง€๋งŒ, ์–ด๋–ค ์ด์œ ๋กœ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ pipenv ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. virtualenv ์™ธ๋ถ€์˜ ์ผ๋ฐ˜ pip ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ CI ๋ฐ ๋„์ปค์™€ ํ•จ๊ป˜ ๊ฐœ์ธ pip ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถ๊ธˆํ•ดํ•˜๋Š” ์‚ฌ๋žŒ์€ ์ธ์ฆ๊ณผ ํ•จ๊ป˜ PIP_EXTRA_INDEX_URL ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ VCS์— ์ฒดํฌ์ธ๋˜์ง€ ์•Š์€ .env ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CI ๋„๊ตฌ๊ฐ€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ •์˜์— ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์œผ๋กœ ์›๊ฒฉ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ GUI ๋˜๋Š” CLI ์„ค์ •์—์„œ). docker ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ --build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ด€๋ จ ์ด์Šˆ(#1020)์— ์ถ”๊ฐ€ํ•  ๊ฒƒ์ด์ง€๋งŒ, ์–ด๋–ค ์ด์œ ๋กœ ๋‹ซํ˜”์Šต๋‹ˆ๋‹ค.

@Californian ๊ด€๋ จ ์—…๋ฐ์ดํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@Californian OT๋Š” ์—ฌ๊ธฐ์— ์žˆ์ง€๋งŒ ๋น„๋ฐ€์— --build-arg ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋นŒ๋“œ ๊ธฐ๋ก์—์„œ ๋น„๋ฐ€์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. docker history <image> ์‹œ๋„ํ•˜๋ฉด ๊ฑฐ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰