I am trying to push a Docker Compose file to GitLab Container Registry. The commands are getting executed successfully, however, I do not see the image in the registry. When I tried to push the Dockerfile, that works. The Compose file isn't. No known solutions for this. Is searched for similar posts but could not find an answer.
If you are using Docker executor with Docker-in-Docker service docker-compose command is not available by default and it has to be installed. You can see here if you might be hitting some more limitations in your CI/CD configuration using docker build
Related
I have a single node Kubeadm deployment, I want do be able to run docker images the same way that you can in Minikube with eval $(minikube docker-env), is this possible?
I know that I can side-load a tarball and start a docker image to host my images, but I don't want that. Also, it seems that it would be most helpful to find out how to find the environment variables related to any program, not just this one. I will be looking into that but figured I would ask in case someone knew right away.
For the docker image containing kubeadm binary, you can find it on docker hub here (e.g for Kubernetes v1.14.0 - use 'kindest/node:v1.14.0')
If you want to re-use node's docker-engine, please follow one of many online tutorials on how to 'connect docker client to a remote docker daemon'. e.g this one. If you want to have a similar experience like with 'minikube docker-env', install standalone docker-machine tool, and follow instruction from this guide.
With maven am building a fat jar for my streaming app. Have to deploy the jar to a k8 cluster. Enterprise don't have internal docker hub. So my option is to build the image as part of jenkins and use the same in kub job manager config. I would appreciate if any example demonstrating the project layout and steps to deploy
Used the build.sh script from https://github.com/apache/flink/blob/release-1.7/flink-container/docker/README.md and able to convert to docker image. And using docker compose am able to get the app running. But when trying for kub as specified in https://github.com/apache/flink/blob/release-1.7/flink-container/kubernetes/README.md#deploy-flink-job-cluster am seeing image not found.
Kubernetes does not manage images, it relies on Docker for that. You can check the Docker documentation About images, containers, and storage drivers.
In Kubernetes You can use the following registries: Google Container Registry, AWS EC2 Container Registry, Azure Container Registry, IBM Cloud Container Registry and your own Private Registry
You can read the Kubernetes documentation on how to Pull an Image from a Private Registry
You can find many projects helping with the setup of your own private registry.
One of the easiest ones is the project k8s-local-docker-registry by SeldonIO.
Start/Stop private registry in cluster
start private registry
./start-docker-private-registry
stop private registry
./stop-docker-private-registry
Check if the registry catalog can be accessed and the ability to push an image.
(set -x && curl -X GET http://127.0.0.1:5000/v2/_catalog && docker pull busybox && docker tag busybox 127.0.0.1:5000/busybox && docker push 127.0.0.1:5000/busybox)
I have a failing public docker hub container and if I kubectl apply -f ... with the same version, :latest in this case, I am getting:
Container image "<name/name>:latest" already present on machine
I don't see the image anywhere, in this case I am running on Google Kubernetes Engine - and it is not in the google container registry.
The solution or workaround, is of course to fix the code error in the docker container, and add to the version number and push again - then it all works and get pulled.
But is there no way to clear the image in Kubernetes, something like in docker docker rmi <name/name>:latest?
I think use latest tag - not the best. But if it is necessary, official workaround imagePullPolicy=Always.
Why this not best way? More info can find this.
I am new to docker and I have instantiated a strapi container which needs a mongoDB container to be run first. I am currently running this in AWS ECS where I configured the task definition to have both the containers and linked.
I am now just wondering if I can make a docker image out of the existing container system. So in future, I could maybe just post this new image to dockerhub or ECR and run in ECS without any additional configuration like Environment variables or links or multiple containers in single task defintion.
Any ideas would be helpful.
you can create docker image by
docker commit (container-name)
I have been looking for a jenkins plugin to deploy a docker image to a kubernetes cluster using k8s api. This will access the rest api with yaml file with credentials that already configured. If there is no similar plugin, you can let me know other simple examples. Thanks for reading.
I think you are looking for a plugin's which is similar to this
https://wiki.jenkins-ci.org/display/JENKINS/Kubernetes+CI+Plugin
https://wiki.jenkins.io/display/JENKINS/Kubernetes+Pipeline+Plugin
I'm using a simple Execute Shellstep in Jenkins with the fallowing command:
kubectl --server="https://kubeapi.example.com" --token=$ACCESS_TOKEN set image deployment/deployment_name container_name=repo/image:"$BUILD_NUMBER-$SHORT_GIT_COMMIT"
You can save your $ACCESS_TOKENas a Secret text and use it as a variable in Jenkins.
The job is making the build, tag and publish a docker image to docker repo, then set the image in the kubernetes cluster.