# Fast and Furious Building OCI compatible Container Images with GoReleaser and ko
GoReleaser and [ko][] are popular open-source, well-recognized projects, especially in the containerization and open-source ecosystem for Go applications.
Many people use these projects for their Go applications because they are pretty straightforward and CI-friendly tools that make your releasing artifacts (binary and container image) process super elegant, which also helps you focus more on developing the business logic rather than planning to release software type of works.
<!-- more -->
I’m so glad to announce that we finally [integrated these fantastic projects](/customization/ko)!
> If you are interested in learning more about the development process of that
> feature, here is the [PR](https://github.com/goreleaser/goreleaser/pull/3653/) you can take a look.
As a result, starting from [GoReleaser v1.15](https://github.com/goreleaser/goreleaser/milestone/17), you can build container images by setting configuration options for ko in GoReleaser without having ko installed on your environment.
This post will be a quick walkthrough to guide people about how things work.
Before diving into that, let’s refresh our minds about these projects with a quick recap.
GoReleaser is a tool for creating and releasing Go projects. It automates the
process of building, packaging, and publishing Go binaries and container images,
basically the [fanciest way of releasing Go projects](https://medium.com/trendyol-tech/the-fanciest-way-of-releasing-go-binaries-with-goreleaser-dbbd3d44c7fb).
It is a super user-friendly, easy-to-use, go-to CLI tool and also provides
[GitHub Actions](https://github.com/goreleaser/goreleaser-action) to be
CI-friendly. It also includes a bunch of features for mitigating the risks of
the software supply chain attacks, such as [generating
SBOMs](/customization/sbom), [signing the artifacts](/customization/sign), and
builds](https://ko.build/features/multi-platform/) by using the
cross-compilation in Go. To get more detail, here is the [blog post](https://blog.kubesimplify.com/getting-started-with-ko-a-fast-container-image-builder-for-your-go-applications) for you.
It is worth mentioning that [ko applied to become a CNCF sandbox project the last year](https://opensource.googleblog.com/2022/10/ko-applies-to-become-a-cncf-sandbox-project.html),
and glad to see that this application [got accepted by the CNCF](https://lists.cncf.io/g/cncf-toc/message/7743),
which means that ko is now officially a CNCF Sandbox project.
Without further ado, let’s dive into the details of the integration by showing it in a real-world example.
> You will find all the source code in GitHub repository,
- And now, [GoReleaser](https://github.com/goreleaser/goreleaser/blob/main/internal/pipe/ko/ko.go)
And that’s it. All you need to do at that point is give a tag to your project and wait for the GitHub workflow to be completed to release your software.
```bash
$ git commit -m"initial commit" -s
$ git tag v0.1.0 -m"first release"
$ git push origin v0.1.0
```
One last note: please remember to use this feature and provide feedback to help us improve this process. Thanks for reading; I hope you enjoyed it; see you in the next blog posts.