首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从gitlab管道构建码头

从gitlab管道构建码头
EN

DevOps用户
提问于 2022-03-15 05:43:14
回答 1查看 291关注 0票数 0

我有以下的"shared.gitlab-ci.yml“

代码语言:javascript
复制
variables:
  GIT_SUBMODULE_STRATEGY: recursive
  DOCKERFILE_BUILD: docker/build/Dockerfile
  DOCKERFILE_TEST: docker/test/Dockerfile
  DOCKERFILE_ANALYZE: docker/analyze/Dockerfile
  BUILD_NAME: $CI_PROJECT_PATH_SLUG:$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
  PREPARE_SCRIPT: ""
  BUILD_ARGS: ""

stages:
- build
- test
- analyze

before_script:
  - echo "Project Details:"
  - echo $CI_PROJECT_PATH_SLUG
  - echo $CI_COMMIT_REF_NAME
  - echo $CI_COMMIT_SHORT_SHA
  - echo "Build Variables:"
  - echo $BUILD_NAME
  - echo $DOCKERFILE_BUILD
  - echo $DOCKERFILE_TEST
  - echo $DOCKERFILE_ANALYZE
  - echo "Directory:"
  - ls -la
  - echo "Registry info:"
  - echo $CI_REGISTRY
  - echo $CI_REGISTRY_NAME
  - echo $CI_REGISTRY_USER
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  - docker info

docker-build:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  script:
    - docker build \
      --rm \
      --build-arg BRANCH_NAME=$CI_COMMIT_REF_NAME \
      --build-arg BUILD_ARGS=$BUILD_ARGS \
      -t $BUILD_NAME \
      $DOCKERFILE_BUILD
    - docker push $BUILD_NAME

它将被使用/包含在另一个存储库"gitlab-ci.yml“中,如:

代码语言:javascript
复制
include:
  - project: my-group/shared-pipeline
    ref: master
    file: shared.gitlab-ci.yml

Dockerfile也在这个存储库/docker/build/Dockerfile中:

代码语言:javascript
复制
FROM unityci/editor:windows-2020.1.16f1-base-0.17.2 as unity 
ARG BRANCH_NAME
ARG BUILD_ARGS

CMD echo "Hello world! This is my first Docker image. Branch: $BRANCH_NAME" 

不知何故,当我运行"gitlab“管道时,我将得到以下输出:

代码语言:javascript
复制
Fetching changes...
Initialized empty Git repository in /builds/my-group/mygame/unity/.git/
Created fresh repository.
Checking out 3731ab28 as develop...
Updating/initializing submodules recursively...
Executing "step_script" stage of the job script
00:01
Using docker image sha256:6816f070b2395d750ce78e4fbdb7e9df0af63b7686f3063c09e008c2ef1a0036 for docker:latest with digest docker@sha256:9e13118c8f7b17349e2d350806082fdda135ebf2923376821f3eac23559b9141 ...
$ echo "Project Details:"
Project Details:
$ echo $CI_PROJECT_PATH_SLUG
my-group-mygame-unity
$ echo $CI_COMMIT_REF_NAME
develop
$ echo $CI_COMMIT_SHORT_SHA
3731ab28
$ echo "Build Variables:"
Build Variables:
$ echo $BUILD_NAME
my-group-mygame-unity:develop-3731ab28
$ echo $DOCKERFILE_BUILD
docker/build/Dockerfile
$ echo $DOCKERFILE_TEST
docker/test/Dockerfile
$ echo $DOCKERFILE_ANALYZE
docker/analyze/Dockerfile
$ echo "Directory:"
Directory:
$ ls -la
total 68
drwxrwxrwx    8 root     root          4096 Mar 15 05:32 .
drwxrwxrwx    4 root     root          4096 Mar 15 05:32 ..
-rw-rw-rw-    1 root     root          1509 Mar 15 05:32 .atomignore
drwxrwxrwx    7 root     root          4096 Mar 15 05:32 .git
-rw-rw-rw-    1 root     root          1848 Mar 15 05:32 .gitattributes
-rw-rw-rw-    1 root     root          1817 Mar 15 05:32 .gitignore
-rw-rw-rw-    1 root     root           230 Mar 15 05:32 .gitlab-ci.yml
drwxrwxrwx   13 root     root          4096 Mar 15 05:32 Assets
drwxrwxrwx    2 root     root          4096 Mar 15 05:32 Packages
drwxrwxrwx    2 root     root          4096 Mar 15 05:32 ProjectSettings
-rw-rw-rw-    1 root     root         11542 Mar 15 05:32 README.md
-rw-rw-rw-    1 root     root           947 Mar 15 05:32 Unity_lic.alf
-rw-rw-rw-    1 root     root          2485 Mar 15 05:32 Unity_v2017.x.ulf
drwxrwxrwx    3 root     root          4096 Mar 15 05:32 ci
drwxrwxrwx    3 root     root          4096 Mar 15 05:32 docker
$ echo "Registry info:"
Registry info:
$ echo $CI_REGISTRY
registry.gitlab.com
$ echo $CI_REGISTRY_NAME
$ echo $CI_REGISTRY_USER
gitlab-ci-token
$ docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$ docker info
Client:
 Context:    default
 Debug Mode: false
Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 2a1d4dbdb2a1030dc5b01e96fb110a9d9f150ecc
 runc version: v1.0.3-0-gf46b6ba2
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
WARNING: API is accessible on http://0.0.0.0:2375 without encryption.
         Access to the remote API is equivalent to root access on the host. Refer
         to the 'Docker daemon attack surface' section in the documentation for
         more information: https://docs.docker.com/go/attack-surface/
 Kernel Version: 5.4.109+
 Operating System: Alpine Linux v3.15 (containerized)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 3.599GiB
 Name: b837f980368f
 ID: 6PTR:73WJ:JO7S:UML2:4FCQ:RL3P:6VTY:PV7D:37OL:UXQ2:M33X:3ZCV
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine
$ docker build \ --rm \ --build-arg BRANCH_NAME=$CI_COMMIT_REF_NAME \ --build-arg BUILD_ARGS=$BUILD_ARGS \ -t $BUILD_NAME \ $DOCKERFILE_BUILD
"docker build" requires exactly 1 argument.
See 'docker build --help'.
Usage:  docker build [OPTIONS] PATH | URL | -
Build an image from a Dockerfile
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

我总是明白:"docker build" requires exactly 1 argument.

我也尝试过,例如:

代码语言:javascript
复制
- docker build --file="$DOCKERFILE_BUILD" 
- docker push $BUILD_NAME

代码语言:javascript
复制
- docker build -f $DOCKERFILE_BUILD
- docker push $BUILD_NAME

结果总是一样的。

EN

回答 1

DevOps用户

回答已采纳

发布于 2022-03-24 15:46:59

我想你忘了“。”(点)

代码语言:javascript
复制
docker build -f $DOCKERFILE_BUILD . 

(在我的例子中)即使使用这个命令,我也得到了错误.

票数 1
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/15607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档