Answers: <p>I think that you forgot '.'(dot)</p>
  <pre><code>docker build -f $DOCKERFILE_BUILD . 
  </code></pre>
  <p>(In my case) Even with this command, I got the error ...</p>
  
Answers: CC BY-SA 4.0
Answers: 2022-03-24T15:56:46.733Z
Answers: you are right. I forgot
Answers: Pwnstar
Answers: CC BY-SA 4.0
Answers: 2022-03-24T15:46:59.557Z
Answers: 2022-03-24T15:46:59.557Z
Answers: wolfgunner
Body: <p>I do have the following &quot;shared.gitlab-ci.yml&quot;</p>
  <pre><code>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: &quot;&quot;
    BUILD_ARGS: &quot;&quot;
  
  stages:
  - build
  - test
  - analyze
  
  before_script:
    - echo &quot;Project Details:&quot;
    - echo $CI_PROJECT_PATH_SLUG
    - echo $CI_COMMIT_REF_NAME
    - echo $CI_COMMIT_SHORT_SHA
    - echo &quot;Build Variables:&quot;
    - echo $BUILD_NAME
    - echo $DOCKERFILE_BUILD
    - echo $DOCKERFILE_TEST
    - echo $DOCKERFILE_ANALYZE
    - echo &quot;Directory:&quot;
    - ls -la
    - echo &quot;Registry info:&quot;
    - echo $CI_REGISTRY
    - echo $CI_REGISTRY_NAME
    - echo $CI_REGISTRY_USER
    - docker login -u &quot;$CI_REGISTRY_USER&quot; -p &quot;$CI_REGISTRY_PASSWORD&quot; $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
  </code></pre>
  <p>Which is will be used/included in another repositories &quot;gitlab-ci.yml&quot; like :</p>
  <pre><code>include:
    - project: my-group/shared-pipeline
      ref: master
      file: shared.gitlab-ci.yml
  </code></pre>
  <p>The Dockerfile is also in this repository <code>/docker/build/Dockerfile</code>:</p>
  <pre><code>FROM unityci/editor:windows-2020.1.16f1-base-0.17.2 as unity 
  ARG BRANCH_NAME
  ARG BUILD_ARGS
  
  CMD echo &quot;Hello world! This is my first Docker image. Branch: $BRANCH_NAME&quot; 
  </code></pre>
  <p>Somehow when I run the &quot;gitlab&quot; pipeline I'll get the following output:</p>
  <pre><code>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 &quot;step_script&quot; stage of the job script
  00:01
  Using docker image sha256:6816f070b2395d750ce78e4fbdb7e9df0af63b7686f3063c09e008c2ef1a0036 for docker:latest with digest docker@sha256:9e13118c8f7b17349e2d350806082fdda135ebf2923376821f3eac23559b9141 ...
  $ echo &quot;Project Details:&quot;
  Project Details:
  $ echo $CI_PROJECT_PATH_SLUG
  my-group-mygame-unity
  $ echo $CI_COMMIT_REF_NAME
  develop
  $ echo $CI_COMMIT_SHORT_SHA
  3731ab28
  $ echo &quot;Build Variables:&quot;
  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 &quot;Directory:&quot;
  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 &quot;Registry info:&quot;
  Registry info:
  $ echo $CI_REGISTRY
  registry.gitlab.com
  $ echo $CI_REGISTRY_NAME
  $ echo $CI_REGISTRY_USER
  gitlab-ci-token
  $ docker login -u &quot;$CI_REGISTRY_USER&quot; -p &quot;$CI_REGISTRY_PASSWORD&quot; $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
  &quot;docker build&quot; 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
  </code></pre>
  <p>I always get: <code>&quot;docker build&quot; requires exactly 1 argument.</code></p>
  <p>I also tried for example:</p>
  <pre><code>- docker build --file=&quot;$DOCKERFILE_BUILD&quot; 
  - docker push $BUILD_NAME
  </code></pre>
  <p>OR</p>
  <pre><code>- docker build -f $DOCKERFILE_BUILD
  - docker push $BUILD_NAME
  </code></pre>
  <p>The result always stays the same.</p>
  
Tags: <docker><gitlab><gitlab-ci-runner>
Title: Docker build from gitlab pipeline
UserDisplayName: Pwnstar
ThreadText: # Docker build from gitlab pipeline
  
  (Asked by: username_0 on 2022-03-15)
  
  I do have the following "shared.gitlab-ci.yml"
  
  ```
  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
  
  ```
  
  Which is will be used/included in another repositories "gitlab-ci.yml" like :
  
  ```
  include:
    - project: my-group/shared-pipeline
      ref: master
      file: shared.gitlab-ci.yml
  
  ```
  
  The Dockerfile is also in this repository `/docker/build/Dockerfile`:
  
  ```
  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" 
  
  ```
  
  Somehow when I run the "gitlab" pipeline I'll get the following output:
  
  ```
  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
  
  ```
  
  I always get: `"docker build" requires exactly 1 argument.`
  
  I also tried for example:
  
  ```
  - docker build --file="$DOCKERFILE_BUILD" 
  - docker push $BUILD_NAME
  
  ```
  
  OR
  
  ```
  - docker build -f $DOCKERFILE_BUILD
  - docker push $BUILD_NAME
  
  ```
  
  The result always stays the same.
  
  **Tags:** docker, gitlab, gitlab-ci-runner
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2022-03-24. Score: 1 | Accepted answer
  
  I think that you forgot '.'(dot)
  
  ```
  docker build -f $DOCKERFILE_BUILD . 
  
  ```
  
  (In my case) Even with this command, I got the error ...
  
  > **Comments:**
  > **username_0**: you are right. I forgot  
  
  ---
  
  