Help Center/ CodeArts Build/ FAQs/ Using Docker for Build/ Failed to Create an Image Using Dockerfile
Updated on 2023-11-28 GMT+08:00

Failed to Create an Image Using Dockerfile

When you create an image by using the action Build Image and Push to SWR or Run Docker Commands, the image may fail to be created in the docker build stage. In this case, rectify the fault by referring to the solution for each scenario.

Failed to Find a File by Running the COPY or ADD Command

Symptoms

The build task contains the Build Image and Push to SWR or Run Docker Commands action. When a task is executed, the following error information is displayed in the log:

ADD failed: stat /var/lib/docker/tmp/docker-builder154037010/temp: no such file or directory
[ERROR] [Build Image and Push to SWR]: Error information: DEV.CB.0210043, Docker image creation failed.
COPY failed: stat /var/lib/docker/tmp/docker-builder076130522/test.txt: no such file or directory

Cause Analysis

The source file of the ADD command is ./temp, but no temp file is available in the current directory.

Solution

Assume that the structure of the current directory is as follows:

+ target
   - temp
- Dockerfile

The target directory contains temp files, and the Dockerfile file is at the same level as the target directory.

  • Method 1: Change the source file of the ADD command to ./target/temp.
  • Method 2: Use the target directory as the working directory. Change the working directory for the Build Image and Push to SWR action to target and the Dockerfile path to ../Dockerfile.

Failed to Pull the Base Image During Image Creation

When you use Dockerfile to create an image and specified base image parameters are incorrect, the image will not be pulled. The scenarios are as follows:

  • No specified images or no permission

    Error log

    pull access denied for java1, repository does not exist or may require 'docker login'

    Analysis and solution

    This error occurs when the specified image cannot be found in the image repository or the current user does not have the pull permission on the image.

    In this example, the image java1 specified by the FROM java1:8ull-jdk-alpine command cannot be found in the image repository. Therefore, this error occurs. Check and modify the image name and try again.

  • No specified image tags

    Error log

    manifest for java:8ull-jdk-alpine not found

    Analysis and solution

    If the specified image exists in the image repository but the corresponding version or tag of the image does not exist, the error manifest not found is displayed. In this example, the image java:8ull-jdk-alpine is specified by the FROM java:8ull-jdk-alpine command. The Java image exists in the image repository but does not have the corresponding version or tag (8ull-jdk-alpine). As a result, this error occurs. Check and modify the image version and try again.

Failed to Execute the Command

Symptoms

When Dockerfile is used to create an image, the following error message is displayed in the docker build stage:

exec user process caused "exec format error"

Cause Analysis

The possible causes are as follows:

  • The base image used for creating an image does not match the executor. For example, the image is an Arm image, but the executor is an x86 image.
  • An error occurs when the Dockerfile file content is copied from another place.

Solution

  1. Check whether the image matches the executor. If the image is an x86 image, only the x86 executor can be used.
  2. Perform the build again and check whether the build is successful. If the build fails, manually enter the Dockerfile and perform the build again.