- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有为 Angular 应用程序编写的这个 Dockerfile:
#### Stage 1: Build the angular application
FROM node:12.4.0-alpine as build
# Configure the main working directory inside the docker image.
# This is the base directory used in any further RUN, COPY, and ENTRYPOINT
# commands.
WORKDIR /app
# Copy the package.json as well as the package-lock.json and install
# the dependencies. This is a separate step so the dependencies
# will be cached unless changes to one of those two files
# are made.
COPY package.json package-lock.json ./
RUN npm ci
RUN npm install -g @angular/cli
# Copy the main application
COPY . ./
# Build the application
RUN npm run build:prod
#### Stage 2: Serve the Angular application from Nginx
FROM nginx:1.17.0-alpine
RUN rm -rf /usr/share/nginx/html/*
# Copy the angular build from Stage 1
COPY --from=build /app/dist/MyAngularApp /usr/share/nginx/html
# Copy our custom nginx config
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
COPY nginx/status.conf /etc/nginx/conf.d/status.conf
# Expose port 80 to the Docker host, so we can access it
# from the outside.
EXPOSE 80
# Expose port 8081 to the Docker host, for nginx status pages
EXPOSE 8081
ENTRYPOINT ["nginx","-g","daemon off;"]
我可以在我的机器上使用 docker build -t my-angular-app:v1 构建这个镜像。
但是如果我首先执行 eval $(minikube docker-env)
来使用 minikube 的 docker 守护进程而不是我的本地并执行相同的命令:docker build -t my-angular -app:v1 .
(按照 README 中的指示)
我收到以下错误(没有这样的文件或目录):
Step 10/15 : COPY --from=build /app/dist/MyAngularApp /usr/share/nginx/html
COPY failed: stat /var/lib/docker/overlay2/2972c4790d70a2e0c98895855e5bde894a97ebab8c5a8b2efab5100c3f8c6fbb/merged/app/dist/MyAngularApp: no such file or directory
确实,VM中没有文件夹/var/lib/docker/overlay2/2972c4...。
我错过了什么?
我正在使用 minikube v1.6.2 和 virtualbox v5.2.34
本地 docker v19.03.5
minikube 的 docker 也是 v19.03.5
FIY minikube docker-env
设置以下环境变量:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/home/myUser/.minikube/certs"
最佳答案
好的,我发现了问题:它与我的 Dockerfile 或 minikube 中丢失的文件无关。
TLDR 在最后。
所以问题是Docker没有找到在第一阶段创建的/app/dist/MyAngularApp文件夹。
此文件夹应该由命令 npm run build:prod
创建。
用我的机器构建时,它可以工作。通过 minikube 构建时,不会创建该文件夹。没有错误或警告。命令运行...但什么也没有。
有人建议使用 Yarn 而不是 Npm,看看它是否显示某种错误或警告。宾果!
yarn run build:prod
显示:error Command failed with signal "SIGKILL".
哈哈!构建占用过多资源并被终止。
我用 minikube 增加了内存:
minikube delete;
minikube start --memory 4096
现在一切正常!
我不知道为什么 Yarn 会显示错误而 Npm 不会,即使使用了 --verbose。
TLDR; minikube 上的内存不足导致它对我的 npm build
发出 SIGKILL 信号。没有构建,没有结果文件夹,因此出现 COPY 错误。使用 npm 时没有显示错误。切换到 Yarn,它显示 SIGKILL 错误。
关于docker - 通过minikube搭建docker多阶段镜像报错: file not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59771651/
我正在努力学习本教程 https://github.com/cf-platform-eng/spring-boot-cities/tree/master/cities-service在 Cloud F
0){ echo "Username or email already exists."; }else{ $query = mysql_que
我想在Linux上编译ARToolKit源码,下载源码,按照ARToolKit文档,配置GLUT , OpenGL, libjpeg 等库。 转到 ARToolKit 目录并键入 ./Configer
你好,我在这个程序中遇到错误,wcout 不是 `std' 的成员。如您所见,我也使用了 iostream,但没有用。我有 Dev-C++ 4.9.9.2,我的操作系统是 XP SP3我需要你的帮助。
我尝试对一个网站进行多次投票,但我得到: panic: runtime error: invalid memory address or nil pointer dereference [signal
当我将“ using namespace std; int main(){ string s[30]; int n = 20; for(int i = 0; i using
我设置了 EMAIL_URL process.env.MAIL_URL="smtp://xx%40gmail.com:yyy@smtp.gmail.com:465" 这个工作找到了 Email.sen
我有如下文件夹结构 . ├── docker-compose.yml └── web-app ├── create_tomcat_admin.sh ├── Dockerfile
这是我在 php 中的查询代码: $query3 = mysql_query("SELECT * FROM area_of_work") or die('Invalid query:'. mysql_
我正在尝试将 therubyracer/therubyracer-heroku 安装到我的应用程序,因为它在 heroku 服务器中不起作用,因为我没有 javascript 运行时环境。 当我尝试安
我正在开发一个非常简单的 React 应用程序。它有一个组件,在这个组件中,我试图在单击链接时设置状态。但出于某种原因,setState 甚至没有得到认可。它带有下划线,表示未解析的函数或方法 set
我有三个来源:代码处理.h typedef enum {typeBool, typeVarDeclaration, typeFuncDeclaration } nodeEnum; typedef st
我正在尝试从我的 Android 手机向 raspi 发送连续的命令。我使用了此链接中的代码,但出现错误。 链接:https://stackoverflow.com/questions/2347143
我正在尝试从数据库中加载数据并将其放入不同的 View 中。 log cat 返回错误,它找不到“_id”列。 有人可以帮我解决这个问题吗? SqlHelper代码: public class Fib
我的alertview给出了这个问题..它与sqlite无关..它给出了一些信息.. 我该如何解决这个问题? UIAlertView *infoShow = [[UIAlertView alloc]
这个问题在这里已经有了答案: launch activities from different package (5 个答案) 关闭 10 年前。 最近我一直在开发一个新的应用程序,我正在尝试使用
这是我的代码: #include #include typedef struct test { int *a; char *s; }TEST; int main (void) {
所以我定义了一个函数,如果它是由它的 lonesome 实现的,那么它非常适合对线性数组进行合并排序,但是如果我把它放到一个类中,它就会出错。我认为这是一个很好的例子,说明我不太了解类(class)的
我是 IOS 新手。我有一个示例项目,并试图在此基础上学习 Obj-C。 现在我正处于学习如何使用 UIAlertController 的阶段。我有这样的代码: if (loanAmount == 0
当我尝试使用 wincachegrind 并获取 cachegrind 文件时,它返回 Cannot find call target. cachegrind.out line number:68 有
我是一名优秀的程序员,十分优秀!