<p>I am trying to create a mapping for a gRPC service with ambassador, a load balancer. To deploy and map the service, I created a yaml file that has the following lines (among others):</p>

<pre><code>containers:
      - name: grpc-pep
        image: enm10k
        imagePullPolicy: IfNotPresent
        ports:
</code></pre>

<p>When I deploy it and run <code>kubectl get pods</code>, I get the following message:</p>

<pre><code>NAME                                             READY     STATUS         RESTARTS   AGE
ambassador-567f8c7c6-68bx6                       2/2       Running        3          3d
ambassador-567f8c7c6-c2n6z                       2/2       Running        3          3d
ambassador-567f8c7c6-kjznt                       2/2       Running        5          3d
grpc-pep-5f54b8d77b-f4l94                        0/1       ErrImagePull   0          3m
</code></pre>

<p>I am getting an ErrImagePull error message for the image I am trying to to access. enm10k is a dockerhub image, and I am under the impression that I should not be creating it. But, even when I <em>do</em> to create it, I get the following error message:</p>

<pre><code>tex@tex-ThinkPad-P50:~$ docker build -t enk10k .
WARN[0000] Unable to use system certificate pool: requires building with go 1.7 or later 
Error checking context: 'no permission to read from '/home/tex/.cpan/build/CPAN-Meta-YAML-0.018-YA9MFT/lib/CPAN/Meta/YAML.pm''.
</code></pre>

<p>When I try to build it in a place that is not home directory:</p>

<pre><code>$ docker build -t enm10k .
WARN[0000] Unable to use system certificate pool: requires building with go 1.7 or later 
Sending build context to Docker daemon 980.1 MB
Error response from daemon: unexpected error reading Dockerfile: read /var/lib/docker/tmp/docker-builder360563372/Dockerfile: is a directory
</code></pre>

<p>So, I cannot build the image, I cannot find it, and I am not sure how to approach it. I have set the minikube environment <code>$ eval $(minikube docker-env)</code> and I have used just about all policy variations for the <code>imagePullPolicy</code> in the yaml file. </p>

<p>I am not sure how to approach this - hopefully someone with more Docker knowledge can assist me.</p>

John Lexus
<p>You have a mistake in the <code>yaml</code> file, as it's missing repository name.</p>

<pre><code>containers:
      - name: grpc-pep
        image: enm10k
        imagePullPolicy: IfNotPresent
        ports:
</code></pre>

<p>If you go to <a href="https://hub.docker.com/" rel="nofollow noreferrer">hub.docker.com</a> and search for <a href="https://hub.docker.com/search/?isAutomated=0&amp;isOfficial=0&amp;page=1&amp;pullCount=0&amp;q=enm10k&amp;starCount=0" rel="nofollow noreferrer">enm10k</a>, you will see 3 repositories.
In your example, docker does not know which repo to pull.</p>

<p>The yaml files should look like this:</p>

<pre><code>containers:
      - name: grpc-pep
        image: enm10k/grpc-hello-world
        imagePullPolicy: IfNotPresent
        ports:
</code></pre>

<p>You can also check the documentation on how to get <a href="https://www.getambassador.io/user-guide/grpc" rel="nofollow noreferrer">gRPC and Ambassador</a>.</p>
