mihalis's blog

mihalis's picture

Using Cobra and Go to Create Command Line Utilities

I wrote "Using Cobra and Go to Create Command Line Utilities" for Linode.

You can find the guide at https://www.linode.com/docs/development/go/using-cobra/.

More guides to come!

Tags: 
mihalis's picture

Korean version of Mastering Go!

My Mastering Go book has been translated in Korean!

You can find more information about the Korean version at http://acornpub.co.kr/book/mastering-go.

You can still find information about the English version at https://www.packtpub.com/networking-and-servers/mastering-go.

Image: 
Tags: 
mihalis's picture

Uncaught Error: Call to undefined function cache_get() in

If you get:

# drush up
PHP Fatal error: Uncaught Error: Call to undefined function cache_get() in ...
...

The solution might be as simple as executing the next command:
# sudo ln -sfn /usr/bin/php5 /etc/alternatives/php

Drupal 7

mihalis's picture

Save Docker image as a tar file

In this blog post I am going to tell you how to save a Docker image as a tar file and how to use that tar file afterwards.

First, you will need to have a Dockerfile:

$ cat Dockerfile
FROM golang:alpine
RUN mkdir /files
COPY hw.go /files
WORKDIR /files
RUN go build -o /files/hw hw.go
ENTRYPOINT ["/files/hw"]

Then, you will need to create a Docker image from that Dockerfile:

$ docker build -t go_hw:v1 .
Sending build context to Docker daemon 134.1kB
Step 1/6 : FROM golang:alpine
alpine: Pulling from library/golang
cd784148e348: Pull complete
7e273b0dfc44: Pull complete
952c3806fd1a: Pull complete
ee1f873f86f9: Pull complete
7172cd197d12: Pull complete
Digest: sha256:198cb8c94b9ee6941ce6d58f29aadb855f64600918ce602cdeacb018ad77d647
Status: Downloaded newer image for golang:alpine
---> f56365ec0638
Step 2/6 : RUN mkdir /files
---> Running in 6281fe42eb5b
Removing intermediate container 6281fe42eb5b
---> 8dd252caee51
Step 3/6 : COPY hw.go /files
---> a06ad8bf8b54
Step 4/6 : WORKDIR /files
---> Running in aaea454a1320
Removing intermediate container aaea454a1320
---> 512077e5d14d
Step 5/6 : RUN go build -o /files/hw hw.go
---> Running in e5474648eefe
Removing intermediate container e5474648eefe
---> 61e930e48a5a
Step 6/6 : ENTRYPOINT ["/files/hw"]
---> Running in f5ca2e84ada1
Removing intermediate container f5ca2e84ada1
---> 492dda632ae1
Successfully built 492dda632ae1
Successfully tagged go_hw:v1

After that you are ready to save that Docker image:

$ docker save go_hw:v1 -o go_hw.tar
$ ls -l go_hw.tar
-rw------- 1 mtsouk staff 319876096 Jan 6 20:26 go_hw.tar

After that you can distribute your Docker image any way you want and load it as follows:

$ docker load -i go_hw.tar
7bff100f35cb: Loading layer 4.672MB/4.672MB
b14874cfef59: Loading layer 838.7kB/838.7kB
789935042c6f: Loading layer 2.56kB/2.56kB
61b145086eb8: Loading layer 312.4MB/312.4MB
e121936484eb: Loading layer 2.56kB/2.56kB
c53a945a0db2: Loading layer 1.536kB/1.536kB
323c5d051144: Loading layer 2.56kB/2.56kB
ed9b85466379: Loading layer 1.93MB/1.93MB
Loaded image: go_hw:v1

The output of docker images will verify that the docker image is ready for use:

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
go_hw v1 492dda632ae1 3 minutes ago 312MB

Tags: 
mihalis's picture

Working with Kubernetes

Among other things I am currently working with Docker and Kubernetes. Both are really interesting and challenging subjects that I really enjoy!

The image of this blog post shows the output of an Apache web server running in Kubernetes!


$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-2-6bd764c757-77rq9 1/1 Running 0 10s
nginx-2-6bd764c757-kbqd7 1/1 Running 0 10s
nginx-2-6bd764c757-srmds 1/1 Running 0 10s

Image: 

Pages

Subscribe to RSS - mihalis's blog