我试图将初始步骤中安装的 pip 库存储为工件,以便稍后可以在并行步骤中重用它。不幸的是,当执行“测试部分1”和“测试部分2”时,提到的库不存在。
此外,即使在 Bitbucket 窗口的 Artifacts 选项卡中,提到的工件也不可见
image: python:3.8
options:
max-time: 20
definitions:
steps:
- step: &fetch-and-build
name: Update image
caches:
- pip
- docker
services:
- docker
script:
- pip install -r requirements.txt -U
- pip list -v
artifacts:
- /usr/local/lib/python3.8/**
services:
postgres:
image: postgres
memory: 512
variables:
POSTGRES_HOST_AUTH_METHOD: 'trust'
redis:
image: redis
memory: 256
docker:
memory: 2048
default:
- step: *fetch-and-build
- parallel:
- step:
name: "Test part 1"
caches:
- pip
- docker
script:
- pip …Run Code Online (Sandbox Code Playgroud) 应用程序包含:-Django-Redis-Celery-Docker-Postgres
在将项目合并到docker中之前,所有工作都顺利且良好,但是一旦将其移入容器,就开始发生错误。刚开始时一切正常,但过了一会儿我收到以下错误:
celery-beat_1 | ERROR: Pidfile (celerybeat.pid) already exists.
Run Code Online (Sandbox Code Playgroud)
我已经为此苦苦挣扎了一段时间,但是现在我真的放弃了。我不知道这是怎么回事。
Dockerfile:
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir -p /opt/services/djangoapp/src
COPY /scripts/startup/entrypoint.sh entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
COPY Pipfile Pipfile.lock /opt/services/djangoapp/src/
WORKDIR /opt/services/djangoapp/src
RUN pip install pipenv && pipenv install --system
COPY . /opt/services/djangoapp/src
RUN find . -type f -name "celerybeat.pid" -exec rm -f {} \;
RUN sed -i "s|django.core.urlresolvers|django.urls |g" /usr/local/lib/python3.7/site-packages/vanilla/views.py
RUN cp /usr/local/lib/python3.7/site-packages/celery/backends/async.py /usr/local/lib/python3.7/site-packages/celery/backends/asynchronous.py
RUN rm /usr/local/lib/python3.7/site-packages/celery/backends/async.py
RUN sed -i "s|async|asynchronous|g" /usr/local/lib/python3.7/site-packages/celery/backends/redis.py
RUN sed -i "s|async|asynchronous|g" …Run Code Online (Sandbox Code Playgroud)