小编veb*_*ben的帖子

如何使用dockerfile将参数传递给.NET核心项目

我有一个.NET Core项目(使用visual studio并通过Visual Studio Tools for Docker添加docker文件).

DockerFile看起来像这样:

FROM microsoft/dotnet:1.0.1-core
ARG source=.
WORKDIR /app
COPY $source .
ENTRYPOINT ["dotnet", "MyApp.dll"]
CMD ["arg1", "arg2"]
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何将参数传递给项目?

public static void Main(string[] args)
{
    // how does `args` get populated?
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

docker dockerfile docker-for-windows docker-desktop

14
推荐指数
2
解决办法
5127
查看次数

Docker for windows 在尝试查看设置时挂起

我已经为 Windows 安装了 Docker 桌面(Windows 10 上的 docker 19.0.3)。当我去设置它挂起状态更新并且永远不会回来。

在此处输入图片说明

我试过卸载和安装,但没有帮助。Hyper-V 和容器功能在 Windows 10 中打开。请帮助我知道这到底可能有什么问题?

docker docker-for-windows docker-desktop

14
推荐指数
2
解决办法
3916
查看次数

Docker:导出镜像失败:创建镜像失败:获取层失败

我收到以下错误:

无法导出图像:无法创建图像:无法获取图层 sha256:xxxxxxxxxxxxx:图层不存在

Dockerfile

FROM openjdk:8
COPY ./lib/ /usr/src/app/BOOT-INF/lib/
COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/app/BOOT-INF/lib/entities-1.0-SNAPSHOT.jar
COPY ./app/ /usr/src/app/
WORKDIR /usr/src
CMD ["java", "-cp", "app/", "org.springframework.boot.loader.JarLauncher"]
Run Code Online (Sandbox Code Playgroud)

输出

Step 3/6 : COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/entities-1.0-SNAPSHOT.jar
 ---> 3acb1f6c911a
Step 4/6 : COPY ./app.jar /usr/src/app.jar
failed to export image: failed to create image: failed to get layer sha256:33a94c44f7804ae3f57b9e72f94323c15cef7267be7eb95d90d2a1673c4b33b9: layer does not exist
Run Code Online (Sandbox Code Playgroud)

第二次运行总是有帮助 - 错误消失。我正在构建多个不同的图像(不同的 jar),在不同的目录中使用不同的 Dockerfile。但是 Dockerfiles 的内容是一样的。

我认为添加后出现此错误:

COPY ./lib/entities-1.0-SNAPSHOT.jar /usr/src/app/BOOT-INF/lib/entities-1.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)

我不想删除那一行:app 和实体是我的库。如果我删除行 - 我将得到一个第三方库(50mb)与实体(2mb)合并的层。

docker dockerfile

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

角7:NullInjectorError:没有PagerService提供程序

我正在尝试实现分页,但是没有用。这是我的代码:

pager.service.ts:

  import * as _ from 'underscore';
  @Injectable({
      providedIn: 'root',
  })
export class PagerService {
  getPager(totalItems: number, currentPage: number = 1, pageSize: number = 10) {

    // calculate total pages
    let totalPages = Math.ceil(totalItems / pageSize);

    let startPage: number, endPage: number;
    if (totalPages <= 10) {
      // less than 10 total pages so show all
      startPage = 1;
      endPage = totalPages;
    } else {
      // more than 10 total pages so calculate start and end pages
      if (currentPage <= …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript angular angular7

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

Docker Desktop for Windows:无法在Windows容器模式下访问公开端口上的服务

我正在使用以下Dockerfiles在运行Docker Desktop for Windows 17.03版的Windows 10桌面上的Windows容器中创建运行Jenkins的容器

FROM microsoft/windowsservercore

RUN powershell -Command wget 'http://javadl.oracle.com/webapps/download/AutoDL?BundleId=210185' -Outfile 'C:\jreinstaller.exe' ; Start-Process -filepath C:\jreinstaller.exe -passthru -wait -argumentlist "/s,INSTALLDIR=c:\Java\jre1.8.0_91" ; del C:\jreinstaller.exe

ENV JAVA_HOME c:\\Java\\jre1.8.0_91  
RUN setx PATH %PATH%;%JAVA_HOME%\bin

CMD [ "java.exe" ]
Run Code Online (Sandbox Code Playgroud)

我从这个docker文件创建图像:

docker build -t windows-java:jre1.8.0_91 .
Run Code Online (Sandbox Code Playgroud)

我用来安装Jenkins的第二个Dockerfile:

FROM windows-java:jre1.8.0_91

ENV HOME /jenkins  
ENV JENKINS_VERSION 2.58  
RUN mkdir \jenkins  
RUN powershell -Command "wget -Uri https://updates.jenkins-ci.org/latest/jenkins.war -UseBasicParsing -OutFile /jenkins/jenkins.war"

EXPOSE 8080  
EXPOSE 50000  

CMD java -jar C:\\jenkins\\jenkins.war


docker build -t jenkins-windows:2.0 . …
Run Code Online (Sandbox Code Playgroud)

docker docker-for-windows docker-desktop

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

“时刻”没有导出的成员“默认”

moment.js用来更改应用程序的本地日期格式,但出现以下错误:

导入库时,“ moment”没有导出的成员“ default”。

下面是我的代码:

import {Inject, Injectable, Optional} from '@angular/core';
import {DateAdapter, MAT_DATE_LOCALE, MatDateFormats} from '@angular/material';
import * as _moment from 'moment';
import {default as _rollupMoment, Moment} from 'moment';

const moment = _rollupMoment || _moment;
Run Code Online (Sandbox Code Playgroud)

momentjs typescript angular-moment angular angular7

12
推荐指数
2
解决办法
4412
查看次数

Docker Windows 容器无法解析 host.docker.internal

我的 Windows docker 容器无法解析host.docker.internal,但它可以与 Linux 容器一起使用。我更愿意继续使用 Linux 容器,但我在使用旧的 .Net Framework 4.7.2 应用程序时遇到了问题。

我的应用程序连接到本地计算机上的 RabbitMQ。这在 Linux 容器中按预期工作,但在 Windows 容器中它会抛出此错误:

System.Net.Sockets.SocketException:没有这样的主机已知

我尝试过 ping host.docker.internal。

C:\app>ping host.docker.internal Ping 请求找不到主机 host.docker.internal。请检查名称并重试。

这是我的 dockerFile:

FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /app
COPY ${source:-SampleApp/obj/Docker/publish} .
ENTRYPOINT ["C:\\app\\SampleApp.exe"]
Run Code Online (Sandbox Code Playgroud)

我使用的是 docker 版本20.10.2和 docker 桌面版本3.1.0
我在 Windows 10 版本 10.0.18363 上运行。

docker docker-container docker-for-windows windows-container docker-desktop

12
推荐指数
1
解决办法
1511
查看次数

pymongo-mongodb + srv“必须安装dnspython”错误

我正在尝试从Atlas连接MongoDB,但遇到了:

dnspython必须安装错误

我的mongo uri(样机):mongodb+srv://abc:123@something.something.com/admin?retryWrites=True

我的pymongo版本3.6.1 我已经安装dnspython并完成import dns

仍然,我得到错误:

必须安装dnspython模块才能使用mongodb + srv:// URI

python database dnspython mongodb pymongo

11
推荐指数
7
解决办法
7078
查看次数

Docker 运行给出“CreateProcess:Windows 系统调用失败:系统找不到指定的文件。(0x2)”

我对 docker 很陌生。我正在尝试 dockerize 一个 helloworld API。但是当我尝试 docker run 图像时,我收到了这个错误:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: container f891d7fc7af6e1183256043e6105fc87e25c6959d9745cc972b42c7b2e6f5a06 在创建系统调用过程中遇到错误:Windows无法找到指定的文件系统:(0x2) [事件详细信息:提供者:00000000-0000-0000-0000-000000000000] [事件详细信息:提供者:00000000-0000-0000-0000-0000000000000-0000-0000-0000-000000000000] .cpp(168)\vmcomputeagent.exe!00007FF683797B25: (caller: 00007FF68377A312) Exception(4) tid(108) 80070002 系统找不到指定的文件。CallContext:[\Bridge_ProcessMessage\ComputeSystemManager_ExecuteProcess\VmHostedContainer_ExecuteProcess] Provider: 00000000-0000-0000-0000-000000000000] 额外信息: {"CommandLine":"

我有一个简单的asp.net api。我把它发布到同一个文件夹./publish 这是我的 docker 文件

FROM microsoft/aspnet:4.7.1-windowsservercore-1709
WORKDIR /app

COPY ./publish .
WORKDIR bin
RUN ls
ENTRYPOINT ["dotnet", "HelloWorldDocker.dll"]
Run Code Online (Sandbox Code Playgroud)

ls显示HelloWorldDocker.dll是在目录中./bin (app/bin)。IDK这里有什么问题...

asp.net docker dockerfile docker-for-windows docker-desktop

10
推荐指数
1
解决办法
6074
查看次数

带有 Kotlin 单元测试的 TestContainers PostgreSQLContainer:“没有足够的信息来推断类型变量 SELF”

我试图使用PostgreSQLContainerTestContainershttps://github.com/testcontainers/testcontainers-java + https://www.testcontainers.org/按顺序)进行单元测试我的JPA库。

我这样声明我的容器:

private val postgresqlContainer = PostgreSQLContainer("postgres:12-alpine")
Run Code Online (Sandbox Code Playgroud)

但是,我在Intellij IDE 中遇到以下错误:

没有足够的信息来推断类型变量 SELF

我尝试启动服务时的完整错误是:

错误:(26, 43) Kotlin:类型推断失败:没有足够的信息来推断构造函数中的参数 SELF PostgreSQLContainer<SELF : PostgreSQLContainer<SELF!>!>(p0: String!) 请明确指定。

java kotlin spring-boot testcontainers

10
推荐指数
3
解决办法
3146
查看次数