相关疑难解决方法(0)

使用glob模式的Docker COPY文件?

我有一个由Yarn管理的monorepo,我想利用Docker缓存层来加速我的构建,这样做我想首先复制package.jsonyarn.lock文件,运行yarn install然后复制其余的文件.

这是我的回购结构:

packages/one/package.json
packages/one/index.js
packages/two/package.json
packages/two/index.js
package.json
yarn.lock
Run Code Online (Sandbox Code Playgroud)

这是Dockerfile的感兴趣部分:

COPY package.json .
COPY yarn.lock .
COPY packages/**/package.json ./
RUN yarn install --pure-lockfile
COPY . .
Run Code Online (Sandbox Code Playgroud)

问题是第3个COPY命令没有复制任何东西,我怎样才能达到预期的效果?

docker dockerfile yarnpkg

13
推荐指数
4
解决办法
1万
查看次数

Docker COPY与文件夹通配符

给定这样的文件结构:

project root
|-- X.sln
|-- src
|    |-- Foo
|    |    |-- Foo.fsproj
|    |    |-- Foo.fs
|    |-- Bar
|         |-- Bar.fsproj
|         |-- Bar.fs
|-- test
     |-- Baz
          |-- Baz.fsproj
Run Code Online (Sandbox Code Playgroud)

我想首先将所有.fsproj文件添加到我的Docker镜像,然后运行命令,然后添加其余文件.我尝试了以下,但当然它不起作用:

COPY X.sln .
COPY **/*.fsproj .
RUN dotnet restore
COPY . .
RUN dotnet build
Run Code Online (Sandbox Code Playgroud)

这个想法是在前两个COPY步骤之后,图像上的文件树是这样的:

working dir
|-- X.sln
|-- src
|    |-- Foo
|    |    |-- Foo.fsproj
|    |-- Bar
|         |-- Bar.fsproj
|-- test
     |-- Baz
          |-- …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

12
推荐指数
3
解决办法
5438
查看次数

如何破坏 Docker 容器内的所有内容并开始一个新容器?

(我显然还没有完全掌握 Docker 的概念,所以当我错误/不准确地使用术语时请纠正我。)

我的存储空间快用完了,所以我跑去docker system prune清理一下我的系统。然而,在那之后不久(也许是立即),我在容器中启动 Webpack 开发服务器后开始遇到分段错误。我现在的猜测是,这是由于一些 npm 包必须重建,但由于一些旧的文物仍然存在,所以没有这样做?如果我在容器外部运行 Webpack 开发服务器,我不会遇到分段错误:

web_1       | [2] Project is running at http://0.0.0.0:8000/
web_1       | [2] webpack output is served from /
web_1       | [2] 404s will fallback to /index.html
web_1       | [2] Segmentation fault (core dumped)
web_1       | [2] error Command failed with exit code 139.
Run Code Online (Sandbox Code Playgroud)

因此,我想知道是否docker system prune真的删除了与我之前运行的 Docker 映像相关的所有内容,或者是否可以进行一些额外的清理。

我的 Dockerfile 如下,其中./stacks/frontend是运行 Webpack 开发服务器的目录(通过yarn start):

FROM node:6-alpine
LABEL Name="Flockademic dev environment" \ …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose webpack-dev-server yarnpkg

5
推荐指数
1
解决办法
6644
查看次数