我正在尝试将我的 Docker 映像从 Docker Hub 部署到 Rancher。当我这样做时,我只得到更新状态,然后过了一段时间,我得到了部署超时。我是 Rancher 的新手,正在尝试浏览文档但无法正确理解。谁能帮助我做到这一点?
我已经尝试拉取图像,一段时间后它显示“部署没有最低可用性”。
下面是我的 .gitlab-ci.yml 文件配置:
stages:
- build
- publish
.build: &build_template
stage: build
image: microsoft/dotnet:2.2-sdk-alpine
cache:
key: "$CI_PROJECT_NAMESPACE-$CI_PROJECT_NAME"
paths:
- .nuget/
script:
- dotnet restore -s https://api.nuget.org/v3/index.json --packages ./.nuget/
- dotnet publish --no-restore -c Release -o ./docker/publish/
develop_build:
<<: *build_template
only:
- develop
artifacts:
expire_in: 1 day
paths:
- docker/
.docker: &docker_template
stage: publish
image: docker:stable-dind
script:
- mkdir docker/app/
- mv docker/publish/$ASSEMBLY_NAME.* docker/app/
- mv docker/publish/*.config docker/app/
- mv docker/publish/*.json docker/app/
- cp Dockerfile docker/
- docker build -t $TAG ./docker/
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker push $TAG
develop_docker:
<<: *docker_template
only:
- develop
dependencies:
- develop_build
variables:
ASSEMBLY_NAME: app
TAG: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_PIPELINE_ID
下面是我的 DockerFile:
# Dockerfile
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers set
COPY ./DataStore/DataStore/*.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY *[^.csproj] ./
RUN dotnet publish -c Release -o out
# Build runtime images
FROM microsoft/dotnet:aspnetcore-runtime
ENTRYPOINT ["dotnet", "DataStore.dll"]
我想在将 C# Web API 部署到 Rancher 后运行它。