dockercompose with python代码返回错误13:权限被拒绝。'/.eggs'

2024-05-29 10:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图让docker compose自动安装一些东西,以便与jenkins一起进行测试,在容器完成制作并访问这些命令之前,它会自动终止并吐出一堆文本。这是最后一点

ipv6_address=None, links=[], link_local_ips=None)
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None
compose.cli.main.call_docker: /usr/bin/docker start --attach --interactive 14adaad4b5a6ba50c2c2238e55218c73dbd32ee129f19517747b0156c8433613

Traceback (most recent call last):
  File "setup.py", line 337, in <module>
    version=open('VERSION').readline().strip(),
  File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 161, in setup
    _install_setup_requires(attrs)
  File "/usr/lib/python2.7/site-packages/setuptools/__init__.py", line 156, in _install_setup_requires
    dist.fetch_build_eggs(dist.setup_requires)
  File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 721, in fetch_build_eggs
    replace_conflicting=True,
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 782, in resolve
    replace_conflicting=replace_conflicting
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1065, in best_match
    return self.obtain(req, installer)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1077, in obtain
    return installer(requirement)
  File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 777, in fetch_build_egg
    return fetch_build_egg(self, req)
  File "/usr/lib/python2.7/site-packages/setuptools/installer.py", line 101, in fetch_build_egg
    eggs_dir = os.path.realpath(dist.get_egg_cache_dir())
  File "/usr/lib/python2.7/site-packages/setuptools/dist.py", line 762, in get_egg_cache_dir
    os.mkdir(egg_cache_dir)
OSError: [Errno 13] Permission denied: './.eggs'
compose.cli.verbose_proxy.proxy_callable: docker remove_container <- ('14adaad4b5a6ba50c2c2238e55218c73dbd32ee129f19517747b0156c8433613', force=True, v=True)

compose.cli.verbose_proxy.proxy_callable: docker remove_container -> None
compose.cli.main.exit_with_metrics: 1

我一直在寻找一个原因,但我所看到的一切都不起作用。实际上,我已经使用chmod 777 -R python2.7将整个python.2.7目录的访问权限设置为完全访问 我已经卸载并重新安装了python和docker,确保两个版本兼容,因为此时无法将项目更新为python3。我已经确保有一个docker用户和docker组,以及sudo权限。命令为docker-compose run --rm rpm.build.{$PROJECT_NAME},其中$PROJECT_NAME解析为Dockerfile.$PROJECT_NAME。以前,它运行了99%的构建,但莫名其妙地失败了,从那以后一直给我带来新的问题。我无法在终端中使用docker compose,因为docker-compose.yml文件位于git repo上

编辑以添加dockerfile和docker-compose.yml的内容:

version: '2'

services:
    _app:
    build:
        # args:
        # REPO: ${REPO}
        context: .

    _build.rpm:
        tty: false
        build:
            args:
                GID: ${GID}
                UID: ${UID}
            context: .
            dockerfile: Dockerfile.el6
        command: python2 setup.py bdist_rpm2
        volumes:
            - .:/usr/src/front
        working_dir: /usr/src/proj

    app:
        extends: _app
        command: project runserver 0.0.0.0:8080
        environment:
            PROJECT_DATABASE_HOST: database
            PROJECT_DATABASE_NAME: postgres
            PROJECT_DATABASE_USER: postgres
            PROJECT_DEBUG: 1
            PROJECT_TEST: 0
        expose:
            - "8080"
        links:
            - cron
            - database
        ports:
            - "8080:8080"
        volumes:
            - ./debug:/usr/src/debug
            - ./project:/opt/project/lib/project

    fastx:
        build:
            context: .
            dockerfile: Dockerfile.fastx
        working_dir: /tmp
        command: tail -f /var/log/yum.log

    build.rpm.centos6:
        extends: build.rpm.el6

    build.rpm.centos7:
        extends: build.rpm.el7.centos

    build.rpm.el6:
        build:
            dockerfile: Dockerfile.el6
        extends: _build.rpm

    build.rpm.el7.centos:
        build:
            dockerfile: Dockerfile.el7.centos
        extends: _build.rpm

    build.rpm.sles12:
        extends: build.rpm.suse

    build.rpm.suse:
        build:
            dockerfile: Dockerfile.suse
        extends: _build.rpm

    fastx.rebuild.el6:
        tty: false
        build:
            context: buildutils/fastx-branding/
            dockerfile: Dockerfile.el6
        command: /opt/fastx-branding/rebuild-fastx.sh -r CentOS5 -n StarNetFastX2-2.2-77.3.x86_64.rpm
        working_dir: /opt/fastx-branding
        volumes:
            - ./buildutils/fastx-branding/:/opt/fastx-branding

    fastx.rebuild.centos6:
        extends: fastx.rebuild.el6

    fastx.rebuild.el7:
        tty: false
        build:
            context: buildutils/fastx-branding/
            dockerfile: Dockerfile.el7
        command: /opt/fastx-branding/rebuild-fastx.sh -r CentOS5 -n StarNetFastX2-2.2-77.3.x86_64.rpm
        working_dir: /opt/fastx-branding
        volumes:
            - ./buildutils/fastx-branding/:/opt/fastx-branding

    fastx.rebuild.centos7:
        extends: fastx.rebuild.el7

    fastx.rebuild.suse:
        tty: false
        build:
            context: buildutils/fastx-branding/
            dockerfile: Dockerfile.suse
        command: /opt/fastx-branding/rebuild-fastx.sh -r CentOS5 -n StarNetFastX2-2.2-77.3.x86_64.rpm
        working_dir: /opt/fastx-branding
        volumes:
        - ./buildutils/fastx-branding/:/opt/fastx-branding

    fastx.rebuild.sles12:
        extends: fastx.rebuild.suse

    cron:
        extends: _app
        command: crond -n

    database:
        image: postgres
        ports:
            - "5432:5432"

networks:
    default:
        external:
            name: reporting

这是docker-compose.yml,现在是相关的Dockerfile.centos7

FROM centos:7

##MAINTAINER goes here., I left it out because its not technically me.

ARG GID=500

ARG UID=500

RUN groupadd -g 500 user && useradd -g user -u 500 user
RUN chown user:user -R /app/
RUN yum -y install epel-release && \
yum -y install which libffi-devel gcc-c++ patch readline readline-devel zlib zlib-devel sudo \
libyaml-devel libffi-devel openssl-devel make \
bzip2 autoconf automake libtool bison iconv-devel sqlite-devel && \
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

RUN echo 'export rvm_prefix="$HOME"' > /root/.rvmrc && \
echo 'export rvm_path="$HOME/.rvm"' >> /root/.rvmrc && \
curl -L get.rvm.io |rvm_path=/opt/rvm bash -s stable && \
source /root/.rvm/scripts/rvm && \

RUN /bin/bash -l -c 'rvm get latest' && \
/bin/bash -l -c 'rvm reload' && \
/bin/bash -l -c 'rvm autolibs' && \
/bin/bash -l -c 'rvm requirements' && \
/bin/bash -l -c 'rvm install ruby' && \
ruby -v && \
/bin/bash -l -c 'rvm --default use 3.0.0' && \
echo 'attempt at disabling autolibs' && \
ruby -v && \
/bin/bash -l -c 'yum -y install rpm-build rubygems' && \
/bin/bash -l -c 'gem install sass'

RUN yum -y install \
gcc \
git \
httpd \
libffi-devel \
libxslt-devel \
npm \
postgresql-devel \
python27-devel && \
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python && \
npm install -g \
bower \
gulp \
uglifyjs \
yuglify && \
pip install https://codeload.github.com/typeundefined/pyobfuscate/tar.gz/pyobfuscate-0-4

# XXX: fix bug of pip 8.0.2 and pyobfuscate's setup.py
RUN ln -s /usr/lib/python/site-packages/usr/bin/pyobfuscate /usr/bin/pyobfuscate

RUN ln -s rlm.a /usr/lib64/librlm.a && \
mkdir /usr/include/rlm

COPY lib/rlm/license.h /usr/include/rlm/

COPY lib/rlm/rlm.a /usr/lib64/

USER user

最后,如果与linw相关,则不起作用的是:

COMPOSE_HTTP_TIMEOUT=120 docker-compose --verbose run --rm build.rpm.${JENKINS_SUFFIX}

我真的希望有足够的信息来帮助你帮助我


Tags: composedockerpybuildbinlibusrdevel

热门问题