After some investigation we figured out that we build our container images for amd64 architecture, while M1 Macs expect images for arm64 CPU architecture.ĭocker images can support multiple architectures, which means that a single image may contain variants for different architectures, and sometimes for different operating systems, such as Windows. While preparing a new release of Tidal Tools for M1 Macs we discovered that our existing Docker container images won’t work on the new Apple Silicon architecture. We build Docker container images for such 3rd-party solutions and our application (Tidal Tools) runs containers under the hood using the awesome Docker Go SDK. Those two extra functionalities are implemented by our technological partners in other programming languages. It also has some additional features like source code and database analysis. It mostly acts as a Tidal API client accompanying our web application. Tidal Tools is a Go command-line interface (CLI) application. Meat-and-potatoes of how you’ll start your cloud journey. Tidal’ May 2021 Newsletter describes Tidal Tools as the It’s worth repeating that at Tidal we build our CLI application - Tidal Tools - to make it easier for our customers to deal with all sorts of data necessary on their way towards the clouds. With this post, I’m going to describe some other aspects of modern cross-platform applications development. In the previous section we were talking about Go programming language and its ability to easily cross-compile applications for different operating systems and CPU architectures using just a developer’s laptop. How to build and push them on Docker Hub (or any other registry) Multi-CPU architecture Docker container images With this simple trick you can build Go applications for different operating systems and architectures on your laptop or a single build server. $ file hello - macos - arm64 hello - macos - arm64: Mach - O 64 - bit arm64 executable, flags: Let’s start with writing the actual code for our application: The following short walkthrough will guide you through the process of creating a simple Hello world application and building it for Linux, Windows and macOS on M1. In other words, it is possible for a developer running, for example, macOS on her laptop to build an application suitable for running on Windows or Linux, or any other operating system which is supported by the Go compiler. Among other awesome features of Go, there is one which was crucial for us - the ability to cross-compile code for different operating systems and architectures. Go (sometimes referred as Golang) is a statically typed, compiled programming language designed at Google. That’s why we choose Go programming language for our CLI application development. The CLI app could be run anywhere - on a manager’s Microsoft Windows workstation, on a developer’s Apple MacBook Pro, or even on a Linux server since a long time ago in a datacenter far, far away… Because of this, having the ability to build the app for different operating systems was the top priority for us since the beginning of the development. How to cross-compile Go app for Apple Silicon (M1)Īt Tidal we build our CLI application - Tidal Tools - to make it easier for our customers to deal with all sorts of data necessary for their cloud migrations journey. However, we managed to complete it successfully. But since we rely on a lot of third-party technologies the update process wasn’t smooth. We, at Tidal, were eager to release our CLI application - Tidal Tools - for the newest chip from Cupertino. Software vendors just hadn’t been ready to quickly update their applications and libraries for Apple Silicon. While everything was fantastic in terms of new Apple hardware, there were numerous complaints that some software stopped working or worked buggy on the newest Mac computers with M1 chip. It boasted the improved performance and the top-notch efficiency, so there was no surprise that a lot of power users would switch to that new architecture as soon as possible. The release of Apple M1 chip (also known as Apple Silicon) in November, 2020 was one of the significant events in computer industry for the past few years. How we prepared Tidal Tools to run on M1 (Apple Silicon)
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |