Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio docker compose正在重写容器命令_Docker_Docker Compose_Dockerfile - Fatal编程技术网

Visual Studio docker compose正在重写容器命令

Visual Studio docker compose正在重写容器命令,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我有一个Dockerfile正在运行LDAP: FROM openjdk:8u111-jre-alpine MAINTAINER My Name "name@example.com" EXPOSE 10389 RUN apk add --no-cache openssl RUN mkdir /ldap WORKDIR /ldap RUN wget https://github.com/kwart/ldap-server/releases/download/2016-10

我有一个Dockerfile正在运行LDAP:

FROM openjdk:8u111-jre-alpine

MAINTAINER My Name "name@example.com"

EXPOSE 10389

RUN apk add --no-cache openssl
RUN mkdir /ldap
WORKDIR /ldap
RUN wget https://github.com/kwart/ldap-server/releases/download/2016-10-04/ldap-server.jar

COPY ldap.ldif /ldap/users.ldif

CMD ["java","-jar","ldap-server.jar", "users.ldif"]
当我构建并运行它时,它正在工作,并且我能够在.NET Core中连接到它:

$ docker build -t myapp -f LDAP_Dockerfile .
$ docker run -it --rm -p 10389:10389 myapp
docker ps
如下所示:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
61116c3358c3        myapp               "java -jar ldap-serv…"   10 seconds ago      Up 9 seconds        0.0.0.0:10389->10389/tcp   dreamy_mendeleev
但当我从Visual Studio运行docker compose(如在pictue上)时,我无法连接:

docker ps
现在看起来不同了:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
15acc08715e8        myapp2:dev          "tail -f /dev/null"   11 seconds ago      Up 10 seconds       0.0.0.0:32785->80/tcp      MyApp-2_1
3b705c49e371        82beefed3363        "tail -f /dev/null"   11 seconds ago      Up 10 seconds       0.0.0.0:10389->10389/tcp   myapp_ldap
查看命令-直接运行时,它显示
java-jarldap serv…
,但通过docker compose,它显示
tail-f/dev/null
。正如错误告诉
LdapException:无法连接到服务器127.0.0.1:10389(91)
我想这就是问题所在。但是,通过LDAP_Dockerfile直接运行它和通过docker compose运行它有什么不同


编辑:可能是Visual Studio以某种方式重写了容器中的命令。当我简单地通过
docker compose up
复制并运行它时,它工作正常。

要想知道发生了什么,首先我建议检查由
docker compose build
生成的图像:
docker history 82beefed3363--no-trunc | less-S
然后仔细检查
CMD code>指令,等等。当你说“通过Docker Compose运行它”时,你是在终端窗口中运行
Docker Compose up
,还是在做其他事情?(docker compose.yml
没有覆盖
命令:
入口点:
,因此
docker ps
输出实际上非常奇怪。)@DavidMaze通过docker compose运行它意味着在Visual Studio中运行它@ErikMD:这个命令为CMD显示:
CMD[“java”“-jar”“ldap server.jar”“users.ldif”]
这似乎是正确的…请编辑问题以准确描述如何启动容器:Docker Compose和Visual Studio是非常不同的工具。Visual Studio正在运行Docker Compose。我将编辑这个问题。
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
15acc08715e8        myapp2:dev          "tail -f /dev/null"   11 seconds ago      Up 10 seconds       0.0.0.0:32785->80/tcp      MyApp-2_1
3b705c49e371        82beefed3363        "tail -f /dev/null"   11 seconds ago      Up 10 seconds       0.0.0.0:10389->10389/tcp   myapp_ldap