【发布时间】:2021-09-23 05:25:40
【问题描述】:
我的 Dockerfile 不会自动运行我的入口点。
Dockerfile:
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
RUN apt update
RUN apt --yes --force-yes install libssl1.1
RUN apt --yes --force-yes install libpulse0
RUN apt --yes --force-yes install libasound2
RUN apt --yes --force-yes install libicu63
RUN apt --yes --force-yes install libpcre2-16-0
RUN apt --yes --force-yes install libdouble-conversion1
RUN apt --yes --force-yes install libglib2.0-0
RUN apt --yes --force-yes install telnet
RUN apt --yes --force-yes install pulseaudio
RUN apt --yes --force-yes install libasound2-dev
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["SDKStandalone/SDKStandalone.csproj", "SDKStandalone/"]
RUN dotnet restore "SDKStandalone/SDKStandalone.csproj"
COPY . .
WORKDIR "/src/SDKStandalone"
RUN dotnet build "SDKStandalone.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "SDKStandalone.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN chmod +x /app/SDKContainer/startup.sh
ENTRYPOINT ["/app/SDKContainer/startup.sh"]
如果我将最后一行更改为:
ENTRYPOINT ["/bin/bash", "/app/SDKContainer/mySDK"]
我的启动文件包含:
#!/bin/bash
/app/SDKContainer/mySDK &
有效的是,如果我从正在运行的容器中打开 bash,然后执行以下任一操作:
chmod +x /app/SDKContainer/startup.sh
/app/SDKContainer/startup.sh
或者干脆
/app/SDKContainer/mySDK
这两个都可以正常工作,但我需要我的 SDK 在容器启动时自动运行,我不想手动启动它。我不知道这是否重要,但为了完整性 - 我正在 Visual Studio 2019 中调试,它们通过 Docker compose YML 运行,我选择了“不调试”。
Docker 编写
version: '3.4'
services:
myproject.server:
image: ${DOCKER_REGISTRY-}myserver
build:
context: .
dockerfile: Server/Dockerfile
sdkstandalone:
image: ${DOCKER_REGISTRY-}sdkstandalone
container_name: sdk1
build:
context: .
dockerfile: SDKStandalone/Dockerfile
sdkstandalone2:
image: ${DOCKER_REGISTRY-}sdkstandalone
container_name: sdk2
build:
context: .
dockerfile: SDKStandalone/Dockerfile
launchSettings.json
{
"profiles": {
"Docker Compose": {
"commandName": "DockerCompose",
"serviceActions": {
"sdkstandalone": "StartWithoutDebugging",
"myproject.server": "StartDebugging",
"sdkstandalone2": "StartWithoutDebugging"
},
"commandVersion": "1.0"
}
}
}
【问题讨论】:
-
使用Dockefile时出现什么错误
-
没有错误,容器启动但SDK没有启动
标签: bash docker docker-compose dockerfile visual-studio-2019