GoogleCloudPlatform / generative-ai

Sample code and notebooks for Generative AI on Google Cloud, with Gemini on Vertex AI
https://cloud.google.com/vertex-ai/docs/generative-ai/learn/overview
Apache License 2.0
6.2k stars 1.59k forks source link

[Bug]: FixMyCar docker push issue #490

Open rosquillas opened 2 months ago

rosquillas commented 2 months ago

File Name

https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/sample-apps/fixmycar/vertex-ai-search/dockerpush.sh

What happened?

Following the fixmycar sample-app here , while running the script ./dockerpush.sh the script ends with the following error: An image does not exist locally with the tag: us-central1-docker.pkg.dev/PROJECT-ID/fixmycar/backend-vertex-ai-search

Relevant log output

(The PROJECT-ID in my code is OK, I've replaced it here for generic PROJECT-ID)

ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref e023d94f-882c-4f28-b70c-709c68f26350::dvrktl1idtinjgmwkje9cv3l1: "/.mvn": not found
The push refers to repository [us-central1-docker.pkg.dev/PROJECT-ID/fixmycar/backend-vertex-ai-search]

An image does not exist locally with the tag: us-central1-docker.pkg.dev/PROJECT-ID/fixmycar/backend-vertex-ai-search

Code of Conduct

askmeegs commented 2 months ago

Hello! if you're seeing an error that An image does not exist locally, that usually means the docker build step failed, and there's no container image to push.

During the build, looks like you got an err: "/.mvn": not found. Did you install Maven 3.9+ during the prerequisites?

if Maven is correctly installed, you should be able to run this.

❯ mvn --version
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
Java version: 17.0.10, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk@17/17.0.10/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.4.1", arch: "aarch64", family: "mac"

The docker build step should then be able to run these maven commands during the build: https://github.com/GoogleCloudPlatform/generative-ai/blob/main/gemini/sample-apps/fixmycar/vertex-ai-search/backend/Dockerfile#L17

davidjsanders commented 2 months ago

For me, this is issue was caused by the omission of the wrapper from the git repository (probably due to the .gitignore) To fix this issue, I did the following...

  1. Changed directory to gemini/sample-apps/fixmycar/vertex-ai-search/backend
  2. Executed mvn wrapper:wrapper
  3. Change back to the the vertex-ai-search directory and the execute ./dockerpush.sh

After this, the docker push worked successfully. Hope this helps.

DAVIDMCCREADY commented 1 week ago

Getting this FixMyCar sample app to work is challenging. Errors encountered so far are:

  1. Updating the GCP CloudShell Maven to version 3.9.6 or higher (thanks askmeegs).
  2. Fixing the missing wrapper (thanks davidjsaunders).
  3. Fixing the missing class file for com.google.protobuf.GeneratedMessageV3 (current impasse).

Any suggestions on the best way to fix the missing class file for com.google.protobuf.GeneratedMessageV3 ?