我正在尝试使用docker-compose建立一个docker文件,但出现错误:
EXPLAIN
这是我的docker文件和docker-compose-yml文件: dockerfile:
PROFILE
docker-compose:
/bin/sh: 1: poetry: not found
ERROR: Service 'web' failed to build: The command '/bin/sh -c poetry install && bundler install' returned a non-zero code: 127
答案 0 :(得分:0)
将此添加到您的Dockerfile:
FROM python:2.7
ENV LIBRARY_PATH=/lib:/usr/lib
RUN curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
WORKDIR /stream
ADD . /stream
ENV PATH="${PATH}:/root/.poetry/bin"
RUN poetry install && \
bundler install
EXPOSE 8000
CMD ["/root/.poetry/bin/poetry", "run", "python", "manage.py", "runserver", "0.0.0.0:8000"]
另一方面,您需要在network
中设置一个compose
,以便能够使用服务名称在服务之间进行连接。
答案 1 :(得分:0)
找不到poetry
二进制文件,因为它的位置尚未在PATH
环境变量中。 poetry
安装程序仅在.profile
中添加命令,但不会重新加载这些设置。在Dockerfile
安装命令之后的poetry
中,您需要添加此行(它将重新加载.profile
)
RUN source ${HOME}/.profile
poetry
安装程序将写入${HOME}/.profile
这样做的好处是,在这种情况下,$HOME
不指定为/root
(以防您以后需要一个用户,并且出于安全原因而不以root用户身份执行服务器)