django - 多阶段 Docker 构建失败 - 错误:标志值无效
问题描述
我正在尝试实现多阶段 docker build 来部署Django
Web 应用程序。copy
尝试将文件从一个 docker 阶段传输到另一个阶段时发生错误。我正在分享Dockerfile
和错误回溯供您参考。
同样的Docker
构建在一天前工作。不知何故,它今天不工作。我已经搜索了一些解决方法。但是,没有运气。
我Dockerfile
的身份:
FROM node:10 AS frontend
ARG server=local
RUN mkdir -p /front_code
WORKDIR /front_code
ADD . /front_code/
RUN cd /front_code/webapp/app \
&& npm install js-beautify@1.6.12 \
&& npm install --save moment@2.22.2 \
&& npm install --save fullcalendar@3.10.1 \
&& npm install --save pdfjs-dist@2.3.200 \
&& npm install \
&& npm install --save @babel/runtime \
&& yarn list && ls -l /front_code/webapp/app/static \
&& npm run build \
&& rm -rf node_modules \
&& cd /front_code/webapp/market-app \
&& yarn install \
&& yarn list && ls -l /front_code/webapp/market-app/static \
&& yarn build \
&& rm -rf node_modules \
FROM python:3.8-alpine AS base
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ARG server=local
ARG ENV_BUCKET_NAME=""
ARG REMOTE_ENV_FILE_NAME=""
ARG FRONT_END_MANIFEST=""
ARG s3_bucket=""
ARG AWS_ACCESS_KEY_ID=""
ARG AWS_SECRET_ACCESS_KEY=""
ARG RDS_DB_NAME=""
ARG RDS_USERNAME=""
ARG RDS_PASSWORD=""
ENV server="$server" ENV_BUCKET_NAME="$ENV_BUCKET_NAME" REMOTE_ENV_FILE_NAME="$REMOTE_ENV_FILE_NAME" FRONT_END_MANIFEST="$FRONT_END_MANIFEST" s3_bucket="$s3_bucket" AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" RDS_DB_NAME="$RDS_DB_NAME" RDS_USERNAME="$RDS_USERNAME" RDS_PASSWORD="$RDS_PASSWORD"
RUN mkdir -p /code
WORKDIR /code
ADD requirements/updated_requirements.txt /code/
ADD . /code/
COPY --from=frontend /front_code/webapp/app/static/ /code/webapp/app/static/
COPY --from=frontend /front_code/webapp/market-app/static/ /code/webapp/market-app/static/
COPY --from=frontend /front_code/templates/webapp/index.html /code/templates/webapp/index.html
COPY --from=frontend /front_code/templates/market/market-single-page.html /code/templates/market/market-single-page.html
RUN apk update \
&& apk --no-cache add --virtual build-dependencies \
build-base \
zlib-dev \
jpeg-dev \
libc-dev \
libffi-dev \
musl-dev \
mariadb-connector-c-dev \
python3-dev \
libxslt-dev \
libxml2-dev \
supervisor \
openssh \
&& pip install -qq -r updated_requirements.txt \
&& rm -rf .cache/pip \
&& apk del build-dependencies \
&& apk add --no-cache libjpeg nginx libxml2 libxslt-dev libxml2-dev mariadb-connector-c-dev \
&& cd /code/webapp/app \
&& python format_index_html.py \
&& cd /code/ \
&& python utility/s3_upload_tiny.py \
&& cd /code/webapp/market-app \
&& python format_index_html.py \
&& python format_index_html_vendor.py \
&& cd /code \
&& python utility/s3_upload_tiny_market.py \
&& python utility/cron/setup_initial_env.py \
&& chmod +x utility/cron/cron_job.sh \
&& rm /etc/nginx/conf.d/default.conf \
&& cd /code \
&& touch /var/log/cron.log \
&& mkdir -p /etc/cron.d/ \
&& cp utility/cron/django.cron /etc/cron.d/django.cron \
&& crontab /etc/cron.d/django.cron
COPY nginx.conf /etc/nginx/
COPY django-site-nginx.conf /etc/nginx/conf.d/
COPY uwsgi.ini /etc/uwsgi/
COPY supervisord.conf /etc/supervisor/
#RUN python manage.py collectstatic --noinput && python manage.py migrate --noinput
WORKDIR /code
EXPOSE 80
CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
错误回溯为:
Step 23/35 : ADD . /code/
---> 1b964365c334
Step 24/35 : COPY --from=frontend /front_code/webapp/app/static/ /code/webapp/app/static/
invalid from flag value frontend: pull access denied for frontend, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
注意:1)我有一个免费版本的 Docker 帐户。2) 我正在使用 AWS Codepipeline 进行构建和部署。3) Docker 版本是19.03.3
.
解决方案
推荐阅读
- java - Postmapping 注解在 Spring Boot 应用程序中不起作用
- sql - 如何在 SQL 中将不同表的内容相乘?
- android - React 本机导航抽屉没有覆盖我的应用程序中的标题
- android - 在没有 android Activity、Fragment 或 View 上下文的情况下截取屏幕截图
- spring - 骆驼路线按文件过滤
- apache-zookeeper - 快照目录有日志文件。检查 dataLogDir 和 dataDir 配置是否正确。+ Zookeeper 启动
- python-2.7 - 单位球面上的曲面积分
- c# - 响应完成后在后台任务中使用 HttpContext
- postgresql - Postgress Group BY 与 to_tsquery
- python - 烧瓶中的图片未加载到路径中