从 Docker v1.10 开始,随着内容可寻址存储的引入,Docker 彻底改变了图像数据在磁盘上的处理方式。我知道现在图层和图像是分开的。层只是成为没有图像概念的文件和目录的集合,可以在图像之间自由共享。请参阅更新和具有更好解释的博客。
在docker push和期间docker pull,通过标准输出可以看到层被传输,尽管生成的 SHA 哈希在目的地完全重新生成。
使用ubuntu:14.04base本地构建的镜像,当我使用该docker history命令时,我可以看到构建过程中使用的一系列中间镜像,以及它们贡献的磁盘空间使用情况。
root@ruifeng-VirtualBox:/var/lib/docker/aufs/diff# docker history image_size
IMAGE CREATED CREATED BY SIZE COMMENT
9ae1f372d83c 11 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin/ 0 B
aaf66e9fa85b 11 weeks ago /bin/sh -c chown -R martian /home/martian 6.299 MB
9568768134c1 11 weeks ago /bin/sh -c rm -rf /home/martian/potatoes 0 B
2f40f3f58306 11 weeks ago /bin/sh -c mv /home/martian/water_tanks /home 6.289 …Run Code Online (Sandbox Code Playgroud) 好吧,正如标题所暗示的,这更多是一个问题记录。我试图按照Keycloak docker服务器映像的此README文件上的说明进行操作,但是遇到了一些阻碍。
拉取映像后,以下命令无法启动独立实例。
docker run jboss/keycloak
Run Code Online (Sandbox Code Playgroud)
错误堆栈跟踪:
-b 0.0.0.0
=========================================================================
Using PostgreSQL database
=========================================================================
...
04:45:06,084 INFO [io.smallrye.metrics] (MSC service thread 1-5) Converted [2] config entries and added [4] replacements
04:45:06,096 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 33) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("data-source" => "KeycloakDS")
]) - failure description: "WFLYCTL0113: '' is an invalid value for parameter user-name. Values must have a minimum length of 1 characters"
...
Caused by: java.lang.RuntimeException: Failed …Run Code Online (Sandbox Code Playgroud) 我遇到下面的代码片段,其中包含对类型引用的循环导入依赖。
// Foo.ts
import { Bar } from './Bar';
export interface Foo {
isBarOK: (bar: Bar) => boolean;
}
// Bar.ts
import { Foo } form './Foo';
export class Bar {
protected readonly foo: Foo;
}
Run Code Online (Sandbox Code Playgroud)
这是一个简化版本,但它解释了我遇到的情况。tsc编译代码没有问题,但我收到了import/no-cycle ESLint 规则的警告。我们可以看到这一点Foo并Bar互相参考以进行打字。这是一个不好的做法吗?它意味着什么影响?
我正在尝试重新组织 TypeScript React 项目的导入/导出语句,使它们更短、更清晰,基本上是通过index.ts在每个功能特定文件夹中定义文件来导出该功能的资源(接口/类型/功能等)的方法。这种组织“进口”博客的更智能方式解释了几乎相同的想法。
但在更改后,笑话执行突然中断并出现以下堆栈跟踪。出于保密目的,所涉及的实体已被欺骗。
Test suite failed to run
TypeError: Cannot read property 'FooBarEnum' of undefined
at Object.FooBarEnum (src/features/Zoo/index.ts:93:23)
at Object.<anonymous> (src/features/CarPark/CarParkManager.ts:18:4)
at Object.<anonymous> (src/features/CarPark/index.ts:1:1)
at Object.<anonymous> (src/features/Zoo/ZooManager.ts:1:1)
at Object.<anonymous> (src/features/Zoo/index.ts:14:1)
at Object.<anonymous> (src/features/Rabbit/Rabbit.ts:4:1)
at Object.<anonymous> (test/features/Rabbit/Rabbit.test.ts:2:1)
Run Code Online (Sandbox Code Playgroud)
基本上,在常量文件中定义了一个根本无法读取的枚举。
我很确定我的笑话设置是正确的,因为它在此之前已成功执行。我用babel-jestand@babel/preset-typescript来编译。
如果有人能给我指出调试路径,我将不胜感激,因为堆栈跟踪并不能真正说明太多信息。
我正在尝试maven-checkstyle-plugin按照官方文档添加以下内容作为构建检查的一部分。但是我尝试过,我无法使用自定义规则运行它。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
该checkstyle.xml只包含的具体内容在此发现google_checks.xml。
执行后mvn checkstyle:check,我总是被击中
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.0:check (default-cli) on project XXXXXXX: Failed during checkstyle configuration: cannot initialize module LineLength - Property 'fileExtensions' does not exist, please check the documentation
Run Code Online (Sandbox Code Playgroud) 我正在用 Typescript 编写一个库包,将其发布到npm注册表,以便它可以被其他各种项目使用。
我已按照发布文档进行操作,以确保该--declaration选项正确,tsc以便类型定义也导出到*.d.ts文件中。
我的问题是,现在此类导出分散在各个文件夹中,我的包的消费者正在导入它们,如下所示。
import { FooType } from 'my-test-pacakge/dist/src/foo/types';
import { BarInterface } from 'my-test-package/dist/src/foo/bar';
Run Code Online (Sandbox Code Playgroud)
我想知道这是否可以接受,因为它看起来很乱。我应该编写自己的声明文件以更清晰的方式组织它们吗?
类似问题的现有答案建议通过通用 index.ts 文件导出 API。这对我来说听起来很合理,但我只是想知道dist直接从文件夹导入是否被认为是不好的做法?