Docker Alpine Python
-> https://github.com/docker-library/python/blob/1d59eb2dd813c64891bf554a8ea01754aba25816/3.6/alpine3.6/DockerfilePython 3.6.3
pipenv, version 8.3.1
PIP_PYTHON_PATHãèšå®ãããšãç¡èŠãããpipenvã«ãã£ãŠãªãŒããŒã©ã€ããããŸãïŒç§ã®è³ªåã¯ããã®èåŸã«ããçç±ã¯äœã§ããïŒïŒ https://github.com/kennethreitz/pipenv/blob/master/pipenv/utils.py#L367ãã®ENVããªãŒããŒã©ã€ãããŠããããã§ãããã©ã°--system
ã䜿çšãããšå€æ°ã«ãªããŸãã Dockerã€ã¡ãŒãžããã«ããããšãã«ã pipenv install --system
倱æããŠããããããã®åé¡ãèŠã€ããŸããã
ãªãç§ã¯ãããç¥ã£ãŠããŸããïŒ æ£ããåäœããªãä»ã®æ©èœãããããã§ãã
`` `ïŒPdbïŒpython_path
'/ bin / python'
ïŒPdbïŒwhichïŒ 'python'ïŒ
'/ bin / python'
ïŒPdbïŒprintïŒsys.executableïŒ
'/ usr / local / bin / python'
/ïŒ/ bin / python
shïŒ/ bin / pythonïŒèŠã€ãããŸãã
I think issue is somewhere here: https://github.com/kennethreitz/pipenv/blob/1bf6f5101a3bf1dca78be814e742411cc5bdb2dd/pipenv/cli.py#L1440
p = os.sep.join([location] + ['bin/{0}'.format(command)])
``
this should return
/ usr / local / bin / python but for some strange reason it's returning
/ bin / python`
pipenv install --system
ã¯ã/ bin / pythonãèŠã€ãããªããããã€ã³ã¹ããŒã«ã«å€±æããªãã¯ãã§ãã
ãã®Dockerã€ã¡ãŒãžã®pipenv install --system
ã¯å€±æããŸã
@galuszkakããã¯é¢çœãã§ãã ãããã£ãŠã sys.executable
ã¯pdbã«åŸã£ãŠèšå®ãããŸãããå®éã«which()
åŒã³åºããšãã«ã âsystem
ã䜿çšãããšããäºå®ãæž¡ããŠããªãããããããžã§ã¯ãã®virtualenvã®å Žæã䜿çšããããšããŠããŸããããããååšããŸããã ããã¯é¢é£ããåŒã³åºãã§ããããªãã£ã¹ã«å
¥ã£ããšãã«ç°¡åã«ä¿®æ£ã§ããã¯ãã§ãïŒ https ïŒ
ããããã¹ãŠãå®è¡ããçç±ã¯ãäž»ã«ãpip-foolsããã±ãŒãžãªãŸã«ããŒãã ãŸããŠãã¢ã¯ãã£ããªã€ã³ã¿ãŒããªã¿ãŒãšã¯ç°ãªãããŒãžã§ã³ã®pythonã®pythonããã±ãŒãžã解決ã§ããããã«ããããã§ãã
ãã®ãªããžããªã«ã³ãããããããã®ã«åºã¥ããã®Dockerifleã䜿çšãããšããã®åé¡ãåçŸã§ããŸãããååšããªããšã¯èšãããäœããèµ·ããŠããããã«èŠããŸãããã®dockerfileãè³Œå ¥ãããšæ©èœããããã§ãã
FROM python:alpine3.6
# -- Install Pipenv:
RUN set -ex && pip install pipenv --upgrade
# -- Install Application into container:
RUN set -ex && mkdir /app
WORKDIR /app
# -- Adding Pipfiles
ONBUILD COPY Pipfile Pipfile
ONBUILD COPY Pipfile.lock Pipfile.lock
# -- Install dependencies:
ONBUILD RUN set -ex && pipenv install --deploy --system
@erinxocon䜿çšããŸããã§ãã--deployãã©ã°+ããã§ã®å ã®åé¡ã§ãã$ PIP_PYTHON_PATHã䜿çšããŠããŸãããããã¯ãpipenvã«ãã£ãŠãªãŒããŒã©ã€ããããŸãã
@galuszkakãè©«ã³; ãã®å Žåããªããããèšå®ããå¿ èŠãããã®ãââããããªããšæããŸãã ãã®ãã°ã«ç¢ºå®ã«å¯ŸåŠããŠä¿®æ£ããå¿ èŠããããŸãã PIP_PYTHON_PATHãèšå®ããå¿ èŠã®ããdockeralpineã§ããã«å€ãã®ããšãèµ·ãã£ãŠããã®ã§ã¯ãªãããšæã£ãŠããŸãã
@erinxoconè¬çœªãããã®ã¯äœããããŸãã:)ãç§ã®åé¡ãèŠãŠãããŠããããšãðã ïŒ1005ã§æäŸããä¿®æ£ã¯ãçŸåšæ©èœããŠããŸãã
ããããç§ã¯ããªãã®ç»åãè©ŠããŸããããããŠããã¯åããã®ã®ã»ããã§å®å šã«ããŸãæ©èœããŠããŸãã sam PipfileãšPipfile.lockããã³åã.envãã¡ã€ã«ã®ãµãŠã³ããDockerfileã§æ©èœããåãç»åããœãŒã¹ããŠããããéããèŠãããªããããæåã«åé¡ã®åå ãçªãæ¢ããããšããŠããŸã...
@erinxoconãæã«
FROM python:3.6-alpine3.6
RUN set -ex && pip install pipenv --upgrade
RUN set -ex && mkdir /app
ENV PIP_PYTHON_PATH=/usr/local/bin/python
COPY Pipfile /app/Pipfile
WORKDIR /app
PipfileïŒ
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
flask = "*"
"flask-restful" = "*"
[dev-packages]
pytest = "*"
"pytest-flask" = "*"
[requires]
python_version = "3.6"
$ docker build . -t 'pipenv_issue:latest' --no-cache
$ docker run -it pipenv_issue:latest sh
/app # pipenv install --system
CRITICAL:pip.utils:Error [Errno 2] No such file or directory: '/bin/python': '/bin/python' while executing command python setup.py egg_info
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1855, in install
do_init(dev=dev, allow_global=system, ignore_pipfile=ignore_pipfile, system=system, skip_lock=skip_lock, verbose=verbose, concurrent=concurrent, deploy=deploy, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1320, in do_init
do_lock(system=system, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1050, in do_lock
pre=pre
File "/usr/local/lib/python3.6/site-packages/pipenv/utils.py", line 459, in resolve_deps
resolved_tree.update(resolver.resolve(max_rounds=PIPENV_MAX_ROUNDS))
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 200, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 296, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 153, in get_dependencies
result = reqset._prepare_file(self.finder, ireq)
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 639, in _prepare_file
abstract_dist.prep_for_dist()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 134, in prep_for_dist
self.req_to_install.run_egg_info()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_install.py", line 438, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/utils/__init__.py", line 667, in call_subprocess
cwd=cwd, env=env)
File "/usr/local/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/bin/python': '/bin/python'
ONBUILDRUNã䜿çšããå Žåãšåã«RUNã䜿çšããå Žåã®åé¡ã®ããã§ãã Dockerã®å°é家ã§ã¯ãªãã®ã§ãäž¡è ã®éããç解ããå¿ èŠããããŸãã
@erinxoconãããåé¡ã ãšã¯æããªãã äžèšã®äŸã§ã¯ãã¹ãããæ§ç¯ã€ã¡ãŒãžã§ã¯ãªããå®è¡äžã®ã³ã³ãããŒå ã§åé¡ãçºçããŠããããšã瀺ããŠããŸãã
åé¡@erinxoconïŒå®éã«èšå®ããå¿
èŠããããŸãããããã¯ãã€ã³ãã®æšªã«ããŸããïŒæåã®å Žæã§å€æ°ãèšå®ããŠãã-èšå®ããããšã«ããã PIP_PYTHON_PATH
ããªããåæ Œããå¿
èŠããããšããããã¯ãªãŸã«ãæ©èœãå£ã--system
ïŒ
def which(command, location=None, allow_global=False):
if location is None:
location = project.virtualenv_location
if not allow_global:
if os.name == 'nt':
p = find_windows_executable(os.path.join(location, 'Scripts'), command)
else:
p = os.sep.join([location] + ['bin/{0}'.format(command)])
else:
if command == 'python':
p = sys.executable
return p
@galuszkakã¯--system
ããŸããã allow_global
ã¯ããªãŸã«ããŒã«æž¡ãããwhich
ã®ã³ããŒã«ãã£ãŠæž¡ãããŸãããã Project.virtualenv_location
ããããŸããã --system
ãã©ã°ãåå ã§ã次ã®ããšãåæã«çºçããŸãã
location
ã¯None
Project.virtualenv_location
ã¯None
ïŒ location
ã¯ãŸã None
ïŒallow_global
p = os.sep.join([None] + ['bin/{0}'.format(python)])
ããããã³ãã³ãã®è©Šè¡ãšããŠ/bin/python
ãŠããŸãæ¹æ³ã§ãã
@galuszkakãè©«ã³ããªãã®äŸã§
@techalchemyã¯çã«ããªã£ãŠããŸãã äœæ¥äžã®ãããã¯ãããŸããããããšããããæ¡çšããå¿ èŠããããŸããïŒ
@erinxocon @galuszkakã¯ãã§ã«@nateprewittãæžå¿µãè¡šæãããããïŒïŒ1005ïŒãæžããŠããŸããããããããããŸãã
@erinxoconåã³ãè¬çœªããããšã¯äœããããŸãããç§ã®åé¡ã調æ»ããŠãããŠæ¬åœã«ããããšãã
ä¿®æ£ãšããŠïŒ1005ã«è³æ/å察ã§ããŸããïŒ ãã®PRã«ã€ããŠããã«è°è«ãé²ããŠã¿ãŸãã
ãã®åé¡ã¯ä»æ¥ãç§ã襲ã£ãããOSXã§ã¯ãŸã£ããç°ãªãæ¡ä»¶ã§ãã£ãã 以äžã®ã¹ã¿ãã¯ãã¬ãŒã¹ã
â saudi git:(dev) â pipenv install -r requirements.txt
Warning: the environment variable LANG is not set!
We recommend setting this in ~/.profile (or equivalent) for proper expected behavior.
Creating a virtualenv for this projectâŠ
â Traceback (most recent call last):
File "/usr/local/bin/pew", line 7, in <module>
from pew.pew import pew
File "/usr/local/lib/python3.6/site-packages/pew/__init__.py", line 11, in <module>
from . import pew
File "/usr/local/lib/python3.6/site-packages/pew/pew.py", line 42, in <module>
from pew._utils import (check_call, invoke, expandpath, own, env_bin_dir,
File "/usr/local/lib/python3.6/site-packages/pew/_utils.py", line 22, in <module>
encoding = locale.getlocale()[1] or 'ascii'
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/locale.py", line 581, in getlocale
return _parse_localename(localename)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/locale.py", line 490, in _parse_localename
raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8
Virtualenv location:
Requirements.txt found, instead of Pipfile! ConvertingâŠ
Warning: Your Pipfile now contains pinned versions, if your requirements.txt did.
We recommend updating your Pipfile to specify the "*" version, instead.
Requirements file provided! Importing into PipfileâŠ
Creating a virtualenv for this projectâŠ
â Traceback (most recent call last):
File "/usr/local/bin/pew", line 7, in <module>
from pew.pew import pew
File "/usr/local/lib/python3.6/site-packages/pew/__init__.py", line 11, in <module>
from . import pew
File "/usr/local/lib/python3.6/site-packages/pew/pew.py", line 42, in <module>
from pew._utils import (check_call, invoke, expandpath, own, env_bin_dir,
File "/usr/local/lib/python3.6/site-packages/pew/_utils.py", line 22, in <module>
encoding = locale.getlocale()[1] or 'ascii'
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/locale.py", line 581, in getlocale
return _parse_localename(localename)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/locale.py", line 490, in _parse_localename
raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: UTF-8
Virtualenv location:
Pipfile.lock not found, creatingâŠ
Locking [dev-packages] dependenciesâŠ
Locking [packages] dependenciesâŠ
CRITICAL:pip.utils:Error [Errno 2] No such file or directory: '/bin/python': '/bin/python' while executing command python setup.py egg_info
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1866, in install
do_init(dev=dev, allow_global=system, ignore_pipfile=ignore_pipfile, system=system, skip_lock=skip_lock, verbose=verbose, concurrent=concurrent, deploy=deploy, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1330, in do_init
do_lock(system=system, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1121, in do_lock
pre=pre
File "/usr/local/lib/python3.6/site-packages/pipenv/utils.py", line 461, in resolve_deps
resolved_tree.update(resolver.resolve(max_rounds=PIPENV_MAX_ROUNDS))
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 200, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 274, in _iter_dependencies
for dependency in self.repository.get_dependencies(ireq):
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 153, in get_dependencies
result = reqset._prepare_file(self.finder, ireq)
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 523, in _prepare_file
abstract_dist.prep_for_dist()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 134, in prep_for_dist
self.req_to_install.run_egg_info()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_install.py", line 438, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/utils/__init__.py", line 667, in call_subprocess
cwd=cwd, env=env)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/bin/python': '/bin/python'
ç§ã®ã·ã§ã«ã¯ZSHã§ããã .zshrcã§LC_ALLãšLANGãèšå®ãããšããã¹ãŠæ£åžžã«æ©èœããŸãã ãããããªãLANG / LC_ALLãPythonã€ã³ã¿ãŒããªã¿ãŒã®éžæã«åœ±é¿ãäžããã®ãããããŸããã
@galuszkakããã¯ç¹ã«ãã±ãŒã«ã®åé¡ã®ããã«Macã®åé¡ã§ããææ¥ãã±ãã¹ãããã©ã«ãã®ã·ã§ã«æ§æã§åé¡ã«ã€ããŠè©±ãåã£ããã®ãããžã§ã¯ãã®åæã®åé¡ã远跡ããããã«åªããŸãããåºæ¬çã«ãã±ãŒã«ãæ£ããèšå®ãããŠããªãå ŽåPythonã¯ã²ã©ãæ»ã¬
PRã«ã€ããŠã¯ããµã€ã³ãªãããããã«ãã€ããå¿ èŠã ãšæããŸããPRã§åœŒã«pingãéä¿¡ãããŠãã ããã
system
ãwhich
ãæž¡ãããŠããé¢æ°ã«æž¡ããæž¡ãããwhich
æž¡ããŸãã
@kennethreitzã®åé¡ã¯è§£æ±ºãããŠããŸãããããŸã ä¿®æ£ãããŠããªããã®ãéããããšã¯ã§ããŸããã åé¡ã¯ãŸã åçŸå¯èœã§ãã
30æ¥ã§åãããããŸããã éèŠãªå Žåã¯æ»ã£ãŠããŸã
ç§ã¯é«å±±ã®ç»åã§ãã®åé¡ãæ±ããŠããŸãã 解決çã¯ãããŸããïŒ
Step 7/7 : RUN pipenv install --dev --system --verbose
---> Running in a3097251c098
Pipfile.lock (1b4750) out of date, updating to (6a9e01)âŠ
Locking [dev-packages] dependenciesâŠ
Locking [packages] dependenciesâŠ
CRITICAL:pip.utils:Error [Errno 2] No such file or directory: '/bin/python': '/bin/python' while executing command python setup.py egg_info
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1866, in install
do_init(dev=dev, allow_global=system, ignore_pipfile=ignore_pipfile, system=system, skip_lock=skip_lock, verbose=verbose, concurrent=concurrent, deploy=deploy, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1325, in do_init
do_lock(system=system, pre=pre)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 1121, in do_lock
pre=pre
File "/usr/local/lib/python3.6/site-packages/pipenv/utils.py", line 461, in resolve_deps
resolved_tree.update(resolver.resolve(max_rounds=PIPENV_MAX_ROUNDS))
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 102, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 200, in _resolve_one_round
for dep in self._iter_dependencies(best_match):
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/resolver.py", line 296, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/piptools/repositories/pypi.py", line 153, in get_dependencies
result = reqset._prepare_file(self.finder, ireq)
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 639, in _prepare_file
abstract_dist.prep_for_dist()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_set.py", line 134, in prep_for_dist
self.req_to_install.run_egg_info()
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/req/req_install.py", line 438, in run_egg_info
command_desc='python setup.py egg_info')
File "/usr/local/lib/python3.6/site-packages/pipenv/patched/pip/utils/__init__.py", line 667, in call_subprocess
cwd=cwd, env=env)
File "/usr/local/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/local/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/bin/python': '/bin/python'
ããã¯ãããŒãžãããå ŽåãïŒ1097ã«ãã£ãŠè§£æ±ºãããŸã
@kennethreitzã®åé¡ã¯30æ¥ã§ã¯ãªã23æ¥ã§ãããããããã«éããŸããã ãŸããæåã®PRãã¯ããŒãºãããåŸãä¿çäžã®PRããããŸãã ãããã£ãŠããã®åé¡ã«ã€ããŠã¯ãŸã ä¿çäžã®ã¢ã¯ã·ã§ã³ããããŸã...
åé¡ãåéããŠãã ããã
ããã¯ææ°ãªãªãŒã¹ïŒ9.0.1ïŒã§åçŸã§ããŸãã®ã§ãå床éããŠãã ããã
@jacebrowningã¯ã¬ããŒãã«æè¬ããŸãããããã¯9.0.1ã§ä¿®æ£ãããŠããããïŒ1005ã¯9.0.1ããªãªãŒã¹ããããŸã§ããŒãžãããŸããã§ããã ãã¹ã¿ãŒã§è©ŠããŠãããã解決ããããã©ããã確èªããŠãã ãã
è©Šãããšããã pip install git+git://github.com/pypa/pipenv.git@master
ãšpipenv install --dev --system
ãpython:3.6.3
dockerã€ã¡ãŒãžã§æ©èœãå§ããŸããã å¥ã®ãªãªãŒã¹ãè¡ãããšã¯ã§ããŸããïŒ
ãã¹ã¿ãŒã§åé¡ãåçŸã§ããŸãã ééãããŠããŸããããã®åé¡ã解決ããããšãæ³å®ããŠããPRïŒ1097ã¯ãå®éã«ã¯ãã¹ã¿ãŒã«ããŒãžãããŠããŸããã§ããã åéããŠãã ãã
ããã«ã¡ã¯ãç§ã¯ä»æ¥ãã®åé¡ãèŠã€ããŸãããé«å±±ã®ã³ã³ããã§Pipenvã䜿çšããå¥ã®æ¹æ³ã¯ãããŸããïŒ
@LuRsTä¿®æ£ãããgitcommitshaãä»ããŠã€ã³ã¹ããŒã«ããã ãã§ãã
çŸåšãæ°ãããªãªãŒã¹ãåŸ ã£ãŠããŸãã
RUN set -ex && pip install git+git://github.com/pypa/pipenv.git<strong i="8">@8378a1b104f2d817790a05da370bef0a1b00f452</strong>
ç·šéïŒãããæ©èœãããã«ã¯ãgitãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ãã£ãããã@ sbdchdã«æè¬ïŒ
æ®å¿µãªãããç§ã¯ãŸã python:3.6.3
ubuntu:17.10
ã³ã³ãããšãŸãã
ç·šéïŒç³ãèš³ãããŸããããããã¯å°ã圹ã«ç«ããªãã£ãã ããæå°éã®Dockerfileã§ãããåäœæããããšãã§ããªãã£ãã®ã§ãããã¯ç§ããã£ãŠããç¹å®ã®ïŒãããŠããããã°ãããïŒäœãã§ããã«éããããŸããã èŠã€ãããå ±åããŸãïŒ
ãããç§ãéçºã«äœ¿çšããŠããDockerfileã§ãïŒ
FROM python:3.6
ENV PYTHONUNBUFFERD 1
RUN apt-get update
RUN apt-get install netcat -y
# -- Install Pipenv:
RUN set -ex && pip install git+git://github.com/pypa/pipenv.git<strong i="6">@8378a1b104f2d817790a05da370bef0a1b00f452</strong>
# -- Install Application into container:
RUN set -ex && mkdir /app
WORKDIR /app
# -- Adding Pipfiles
COPY Pipfile Pipfile
COPY Pipfile.lock Pipfile.lock
# -- Install dependencies:
RUN set -ex && pipenv install --dev --system
WORKDIR /app
VOLUME ["/app"]
ãããããããšãã çµå±ã®ãšãããç§ã®å Žåã®ãšã©ãŒã¯ãããã¯ãã¡ã€ã«ãäœæããããšãããšãã«çºçããŠããŸããã çŸåšãããã€ãã®ãããžã§ã¯ããrequirements.txt
ãã移è¡ããŠããã®ã§ãããããåããªããã³ã³ããã«ã€ã³ã¹ããŒã«ããŠããŸããã ããã¯ããããæšå¥šããããŠãŒã¹ã±ãŒã¹ã§ã¯ãªãããšãèãããšãããŸãå¿é
ãã䟡å€ã¯ãªãã§ããããã
ïŒ917ã§ãDockerã§äœ¿çšããã®ãéåžžã«ç°¡åãªåé¿çãè¿œå ããŸããã ã³ã¡ã³ãã¯https://github.com/pypa/pipenv/issues/917#issuecomment-375312947ã§ãã çæ³çã§ã¯ãããŸãããããšãŠãã·ã³ãã«ã ãšæããŸãã @mcgeeco; ç§ã®ã·ããªãªã¯ãããæãã§ããããªãã®ã·ããªãªãšäŒŒãŠããã®ã§ãç§ã®åé¿çã圹ç«ã€ãšæããããããŸããã
ããïŒ
python:3.6
Dockerã€ã¡ãŒãžãšpipenv-11.9.0
åãåé¡ãçºçããŸããã
Dockerfileã®ãµã³ãã«ã¯æ¬¡ã®ãšããã§ãã
FROM python:3.6
WORKDIR /app
COPY . /app/
RUN pip install pipenv
RUN pipenv install --system
EXPOSE 8000
CMD ["python", "main.py"]
ä»ã®ãšããã @ Jitsusamaã®åé¿çã䜿çšããŠããŸãã
ããããšãã
ããã§ãåãã§ããããŸã ããã«èŠèãããŠããŸãã
ããã§é²è¡äžã®åé¡ããè©«ã³ç³ãäžããŸãããã¹ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«åé¡ãçºçããŸããããããã確èªããŸãã
ããã«ã¡ã¯ãç§ã¯ã©ã€ãã©ãª11.10.0ã®ææ°ããŒãžã§ã³ã䜿çšããŠããŸããããŸã ãã®åé¡ãçºçããŠããŸãã ããŒã¹ã€ã¡ãŒãžã¯ubuntuïŒxenialã§ãã
Step 12/22 : COPY Pipfile /tmp/
---> Using cache
---> 416d6b4f86bf
Step 13/22 : COPY Pipfile.lock.master /tmp/Pipefile.lock
---> 40a28443be72
Step 14/22 : RUN cd /tmp && pip3.6 install pipenv==11.10.0
---> Running in 883b8a638d52
Collecting pipenv==11.10.0
Downloading https://XYZ/api/pypi/pypi/packages/e5/fd/740a41c68c38262265d73191fb686f38d26c4ea1ea6080a65b2b626bedc7/pipenv-11.10.0-py3-none-any.whl (5.6MB)
Collecting virtualenv-clone>=0.2.5 (from pipenv==11.10.0)
Downloading https://XYZ/api/pypi/pypi/packages/6d/c2/dccb5ccf599e0c5d1eea6acbd058af7a71384f9740179db67a9182a24798/virtualenv_clone-0.3.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools>=36.2.1 in /usr/local/lib/python3.6/site-packages (from pipenv==11.10.0)
Collecting certifi (from pipenv==11.10.0)
Downloading https://XYZ/api/pypi/pypi/packages/fa/53/0a5562e2b96749e99a3d55d8c7df91c9e4d8c39a9da1f1a49ac9e4f4b39f/certifi-2018.1.18-py2.py3-none-any.whl (151kB)
Requirement already satisfied: pip>=9.0.1 in /usr/local/lib/python3.6/site-packages (from pipenv==11.10.0)
Collecting virtualenv (from pipenv==11.10.0)
Downloading https://XYZ/api/pypi/pypi/packages/ed/ea/e20b5cbebf45d3096e8138ab74eda139595d827677f38e9dd543e6015bdf/virtualenv-15.2.0-py2.py3-none-any.whl (2.6MB)
Installing collected packages: virtualenv-clone, certifi, virtualenv, pipenv
Successfully installed certifi-2018.1.18 pipenv-11.10.0 virtualenv-15.2.0 virtualenv-clone-0.3.0
---> c9e452fdc262
Removing intermediate container 883b8a638d52
Step 15/22 : RUN set -ex && pipenv install --dev --system
---> Running in 8c23d30ef730
+ pipenv install --dev --system
Creating a Pipfile for this projectâŠ
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 366, in install
selective_upgrade=selective_upgrade,
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 1730, in do_install
skip_requirements=skip_requirements,
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 634, in ensure_project
ensure_pipfile(validate=validate, skip_requirements=skip_requirements)
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 288, in ensure_pipfile
project.create_pipfile(python=python)
File "/usr/local/lib/python3.6/site-packages/pipenv/project.py", line 557, in create_pipfile
config_parser = ConfigOptionParser(name=self.name)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/pip9/baseparser.py", line 149, in __init__
assert self.name
AssertionError
The command '/bin/sh -c set -ex && pipenv install --dev --system' returned a non-zero code: 1
@Ankitmarooãã©ã¹ãã¬ãŒã·ã§ã³ããè©«ã³ããŸããããŸããŸãªå Žæã§æ°äººã®äººãèšåããŠããã®ã§ïŒããã«ã€ããŠã¯ãããŸã§ã«ã«ããŒããããšãããããããããšãç¥ã£ãŠããŸãïŒãéèŠãªã®ã¯RUN cd
ã ãã§ãªãããã䜿çšããããšã§ãã /
ããå®è¡ããããšãããšããã¹ãã¡ã€ã³ãã£ã³ã°ïŒããã³çµæãšããŠPythonã®æ€çŽ¢ïŒã«å€å°ã®ãã°ããããããå®éã«ã¯WORKDIR /somedirectory
䜿çšããŸãïŒçŸåšããªãã¡ã¯ã¿ãªã³ã°ãé²è¡äžã§ãïŒã
@techalchemyæ®å¿µãªããã確èªã§ããŸããã ç§ã®æå°éã®DockerfileïŒ
FROM python:3.6-alpine3.7
ENV PYTHONUNBUFFERED=1
WORKDIR app/
COPY Pipfile* app/
RUN set -x \
&& pip install --upgrade pip setuptools wheel pipenv \
&& pipenv install --system --dev
ãšãšã©ãŒïŒ
+ pipenv install --system --dev
Creating a Pipfile for this projectâŠ
Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/pipenv/cli.py", line 366, in install
selective_upgrade=selective_upgrade,
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 1730, in do_install
skip_requirements=skip_requirements,
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 634, in ensure_project
ensure_pipfile(validate=validate, skip_requirements=skip_requirements)
File "/usr/local/lib/python3.6/site-packages/pipenv/core.py", line 288, in ensure_pipfile
project.create_pipfile(python=python)
File "/usr/local/lib/python3.6/site-packages/pipenv/project.py", line 585, in create_pipfile
'python_version': python_version(required_python)[: len('2.7')]
TypeError: 'NoneType' object is not subscriptable
ããã¯ïŒ1939ãšåãã§ãã
ã€ã³ã¹ããŒã«ãããŠããããŒãžã§ã³ã¯æ¬¡ã®ãšããã§ãã
Successfully installed certifi-2018.1.18 pipenv-11.10.0 virtualenv-15.2.0 virtualenv-clone-0.3.0
代ããã«ãPythonãã€ããªãã·ã³ããªãã¯ãªã³ã¯ããã°ããã¹ãŠåé¡ãããŸããã
RUN set -x \
&& pip install --upgrade pip setuptools wheel pipenv \
&& ln -sf /usr/local/bin/python /bin/python \
&& pipenv install --system --dev
@Midnighterã¯å®éã«pipfileãã³ããŒããŠããŸããïŒ
ã¯ã
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
Flask = "*"
[dev-packages]
pytest = "*"
[requires]
python_version = "3.6"
@Midnighterã«åæããŸãã ããã§ããäžèšãšåããšã©ãŒã衚瀺ãããŸãã
@Midnighter WORKDIR
ãapp/
ããŠããCOPY Pipfile* app/
èšå®ããããšã¯ã§ããŸãã-ããã«ããã /app
移åãã Pipfile
ã³ããŒããŸã/app/app
ããã¯ã pipenv
ãåŠçããPipfileãèŠã€ããããªãããšãæå³ããŸãã ç§ã¯åã«ãããããŸããããããŠããã¯åããŸããïŒ
FROM python:3.6-alpine3.7
ENV PYTHONUNBUFFERED=1
COPY Pipfile* app/
WORKDIR app/
RUN set -x \
&& pip install --upgrade pip setuptools wheel pipenv \
&& pipenv install --system --dev
ã©ã®DockerããŒãžã§ã³ã䜿çšããŠããŸããïŒ ããªãã¯æ£ããã§ããç§ã¯DockerfileãåçŽåããã®ãééããŸããããããããªããããã«æçš¿ããããŒãžã§ã³ãå¥ã®ããŒãžã§ã³ãç§ã®ããã«åããŸããã§ããã
ç§ã¯Docker version 17.09.0-ce, build afdb6d4
ãŸãã äžèšã®Dockerfileãè©ŠããŠã¿ããšã次ã®ããã«ãªããŸãã
+ pipenv install --system --dev
Pipfile.lock not found, creatingâŠ
Locking [dev-packages] dependenciesâŠ
ython: not found
æ¬æ¥ã®æå³éãã«äœ¿çšããå Žåã
FROM python:3.6-alpine3.7
ENV PYTHONUNBUFFERED=1
WORKDIR /app
COPY Pipfile* /app/
RUN set -x \
&& pip install --upgrade pip setuptools wheel pipenv \
&& pipenv install --system --dev
åããšã©ãŒãçºçããŸãã
Pythonå®è¡å¯èœãã¡ã€ã«ãèŠã€ããããã«ããã¯ãã¡ã€ã«ãå¿
èŠãªã®ã¯ãªãã§ããïŒ ç¹ã«ãããã§--deploy
ãã©ã°ã䜿çšããŠããªãã®ã§ã ãã ããæ¢åã®ããã¯ãã¡ã€ã«ã§æ©èœããããšã¯ééããããŸããã
@Midnighterã¯ãpipenvãäŸåé¢ä¿ã®è§£æ±ºãè¡ãå¿
èŠãããããã§ããã€ãŸããããã¯ãã¡ã€ã«ããªãéããããã¯ããå¿
èŠããããŸãã ãã ãã âsystem
ãæž¡ããšãäŸåé¢ä¿ã®è§£æ±ºã¯ã§ããŸãããããã«ã¯åé¢ãããç°å¢ãå¿
èŠã§ããã âsystem
åºæ¬çã«ãåé¢ã«äœ¿çšãããvirtualenvãäœæããªãããšèšããŸãã ã¡ãã»ãŒãžã³ã°ã¯ââçŽ æŽããããã®ã§ã¯ãããŸããããããã«ã€ããŠããã€ãå€æŽããããŸãã
æãåèã«ãªãã³ã¡ã³ã
@kennethreitzã®åé¡ã¯è§£æ±ºãããŠããŸãããããŸã ä¿®æ£ãããŠããªããã®ãéããããšã¯ã§ããŸããã åé¡ã¯ãŸã åçŸå¯èœã§ãã