Configuring containers

Learn how to configure the container port and the container entrypoint command and arguments.

When Knative serving starts a container, it runs the image's default entrypoint command and default command arguments. If you want to override the image's default entrypoint and command arguments, you can use the command and args fields in the container configuration. The command field specifies the actual command run by the container. The args field specifies the arguments passed to that command.

Configuring the container port

Any configuration change leads to the creation of a new revision. Subsequent revisions will also automatically get this configuration setting unless you make explicit updates to change it.

The container should listen on the port defined by the PORT environment variable rather than a specific hardcoded port. However, if this is not possible, you can configure on which port requests are sent to the container:

Console

  1. Go to Knative serving in the Google Cloud console:

    Go to Knative serving

  2. Click Create Serviceif you are configuring a new service you are deploying to. If you are configuring an existing service, click on the service, then click Edit & Deploy New Revision.

  3. Under Advanced settings , click Container.

    image

  4. Specify the port you want requests to be sent to, if not the default value of 8080 . This also sets the PORT environment variable.

  5. Click Nextto continue to the next section.

  6. In the Configure how this service is triggeredsection, select which connectivity you would like to use to invoke the service.

  7. Click Createto deploy the image to Knative serving and wait for the deployment to finish.

Command line

  • For existing services, update a port setting by running the gcloud run services update command with the following parameters:

    gcloud  
    run  
    services  
    update  
     SERVICE 
      
    --port  
     PORT 
    

    Replace:

    • SERVICE with the name of the service.
    • PORT with the port to send requests to. Note that the default port is 8080 .
  • For new services, set the port by running the gcloud run deploy command with the --port parameter:

    gcloud  
    run  
    deploy  
     SERVICE 
      
    --image = 
     IMAGE_URL 
      
    --port  
     PORT 
    

    Replace:

    • SERVICE with the name of the service.
    • IMAGE_URL with a reference to the container image, for example, gcr.io/myproject/my-image:latest .
    • PORT with the port to which you want to send requests. The default port is 8080 .

YAML

You can download the configuration of an existing service into a YAML file with the gcloud run services describe command by using the --format=export flag. You can then modify that YAML file and deploy those changes with the gcloud beta run services replace command. You must ensure that you modify only the specified attributes.

  1. Download the configuration of your service into a file named service.yaml on local workspace:

    gcloud  
    run  
    services  
    describe  
     SERVICE 
      
    --format  
     export 
      
    >  
    service.yaml

    Replace SERVICE with the name of your Knative serving service.

  2. In your local file, update the containerPort: attribute:

      apiVersion 
     : 
      
     serving.knative.dev/v1 
     kind 
     : 
      
     Service 
     spec 
     : 
      
     template 
     : 
      
     spec 
     : 
      
     containers 
     : 
      
     - 
      
     image 
     : 
      
      IMAGE_URL 
     
      
     ports 
     : 
      
     - 
      
     containerPort 
     : 
      
      PORT 
     
     
    

    Replace

    • IMAGE_URL with a reference to the container image, for example, gcr.io/myproject/my-image:latest .
    • PORT with the port to which you want to send requests.
  3. Replace the service with its new configuration using the following command:

    gcloud  
    beta  
    run  
    services  
    replace  
    service.yaml

Configuring the container entrypoint command and arguments

Any configuration change leads to the creation of a new revision. Subsequent revisions will also automatically get this configuration setting unless you make explicit updates to change it.

When Knative serving starts a container, it runs the image's default entrypoint command . To specify or override the existing entrypoint command and arguments that are defined in the container image, you can configure the command and args settings in the Knative serving container configuration.

You can choose to configure entrypoint commands, arguments, or both. The command that you specify in Knative serving overrides any entrypoint command that is defined in the container image. If you choose to specify only arguments, those arguments are passed to and run by the entrypoint command defined in the container image.

In Knative serving, you can configure entrypoint commands and arguments using the Google Cloud console, the Google Cloud CLI, or a YAML file when you deploy a new service , update an existing service, or deploy a revision :

Console

  1. Go to Knative serving in the Google Cloud console:

    Go to Knative serving

  2. Click Create Serviceif you are configuring a new service you are deploying to. If you are configuring an existing service, click on the service, then click Edit & Deploy New Revision.

  3. Under Advanced settings , click Container.

    image

  4. Specify the entrypoint command and arguments that you want the container to run during startup.

  5. Click Nextto continue to the next section.

  6. In the Configure how this service is triggeredsection, select which connectivity you would like to use to invoke the service.

  7. Click Createto deploy the image to Knative serving and wait for the deployment to finish.

Command line

Command parameter options

  • To specify an argument that contains a comma ( , ), you must escape each ARG with a different delimiter. For example, if you use @ :
    --args  
     "^@^arg,with,commas@anotherarg@ARG3..." 
    
  • To specify several sets of key-value pairs, you can specify multiple parameters for readability. Example:
     [ 
    ... ] 
    --args  
     " ARG 
    1" 
      
     \ 
    --args  
     " ARG 
    2" 
      
     \ 
    --args  
     " ARG 
    3" 
    
  • To use equal signs ( = ) in your arguments, you must specify each argument using the following format:
    gcloud  
    run  
    services  
    ...  
     \ 
      
    --args  
     "--repo-allowlist=github.com/example/example_demo" 
      
     \ 
      
    --args  
     "--gh-webhook-secret=XX" 
    
  • For existing services, update the entrypoint command by running the gcloud run services update command with the following parameters:

    gcloud  
    run  
    services  
    update  
     SERVICE 
      
    --command  
     COMMAND 
      
    --args  
     ARG1 
    , ARG2 
    , ARG-N 
    

    Replace:

    • SERVICE with the name of the service.
    • Optional: COMMAND with the command that you want the container to run during startup.
    • Optional: ARG1 with one or more arguments for the command that is run during startup. Use a comma delimited list for multiple arguments. How to format your arguments.
  • For new services, set the entrypoint command by running the gcloud run deploy command with the --command parameter:

    gcloud  
    run  
    deploy  
     SERVICE 
      
    --image = 
     IMAGE_URL 
      
    --command  
     COMMAND 
      
    --args  
     ARG1 
    , ARG2 
    , ARG-N 
    

    Replace:

    • SERVICE with the name of the service.
    • IMAGE_URL with a reference to the container image, for example, gcr.io/myproject/my-image:latest .
    • Optional: COMMAND with the command that you want the container to run during startup.
    • Optional: ARG1 with one or more arguments for the command that is run during startup. Use a comma delimited list for multiple arguments. How to format your arguments.

YAML

You can download the configuration of an existing service into a YAML file with the gcloud run services describe command by using the --format=export flag. You can then modify that YAML file and deploy those changes with the gcloud beta run services replace command. You must ensure that you modify only the specified attributes.

  1. Download the configuration of your service into a file named service.yaml on local workspace:

    gcloud  
    run  
    services  
    describe  
     SERVICE 
      
    --format  
     export 
      
    >  
    service.yaml

    Replace SERVICE with the name of your Knative serving service.

  2. In your local file, update the command and args attributes:

      apiVersion 
     : 
      
     serving.knative.dev/v1 
     kind 
     : 
      
     Service 
     spec 
     : 
      
     template 
     : 
      
     spec 
     : 
      
     containers 
     : 
      
     - 
      
     image 
     : 
      
      IMAGE_URL 
     
      
     command 
     : 
      
     - 
      
      COMMAND 
     
      
     args 
     : 
      
     - 
      
     " ARG1 
    " 
      
     - 
      
     " ARG-N 
    " 
     
    

    Replace:

    • IMAGE_URL with a reference to the container image, for example, gcr.io/myproject/my-image:latest .
    • Optional: COMMAND with the command that you want the container to run during startup.
    • Optional: ARG1 with one or more arguments for the command that is run during startup. Use a comma delimited list for more than one argument.
  3. Replace the service with its new configuration using the following command:

    gcloud  
    beta  
    run  
    services  
    replace  
    service.yaml
Create a Mobile Website
View Site in Mobile | Classic
Share by: