More Docker. Easy Access. New Streamlined Plans. Learn more.

balenalib/asus-tinker-edge-t-fedora-golang

Verified Publisher

By balenalib

Updated about 1 month ago

This image is part of the balena.io base image series for IoT devices.

Image
Languages & Frameworks
Internet of Things
Operating Systems
0

10K+

This image is part of the balena.io base image series for IoT devices. The image is optimized for use with balena.io and balenaOS, but can be used in any Docker environment running on the appropriate architecture.

balenalogo.

Some notable features in balenalib base images:

  • Helpful package installer script called install_packages that abstracts away the specifics of the underlying package managers. It will install the named packages with smallest number of dependencies (ignore optional dependencies), clean up the package manager medata and retry if package install fails.

  • Working with dynamically plugged devices: each balenalib base image has a default ENTRYPOINT which is defined as ENTRYPOINT ["/usr/bin/entry.sh"], it checks if the UDEV flag is set to true or not (by adding ENV UDEV=1) and if true, it will start udevd daemon and the relevant device nodes in the container /dev will appear.

For more details, please check the features overview in our documentation.

Image Variants

The balenalib images come in many flavors, each designed for a specific use case.

:<version> or :<version>-run

This is the defacto image. The run variant is designed to be a slim and minimal variant with only runtime essentials packaged into it.

:<version>-build

The build variant is a heavier image that includes many of the tools required for building from source. This reduces the number of packages that you will need to manually install in your Dockerfile, thus reducing the overall size of all images on your system.

How to use this image with Balena

This guide can help you get started with using this base image with balena, there are also some cool example projects that will give you an idea what can be done with balena.

What is Go?

Go (a.k.a., Golang) is a programming language first developed at Google. It is a statically-typed language with syntax loosely derived from C, but with additional features such as garbage collection, type safety, some dynamic-typing capabilities, additional built-in types (e.g., variable-length arrays and key-value maps), and a large standard library.

logo

Supported versions and respective Dockerfile links :

`1.19 (latest)`, `1.18.15`, `1.17.12`

For more information about this image and its history, please see the relevant manifest file (asus-tinker-edge-t-fedora-golang) in the balena-io-library/official-images GitHub repo.

How to use this image

Start a Go instance in your app

The most straightforward way to use this image is to use a Go container as both the build and runtime environment. In your Dockerfile, writing something along the lines of the following will compile and run your project:

FROM balenalib/asus-tinker-edge-t-fedora-golang:latest

WORKDIR /go/src/app
COPY . .

RUN go get -d -v ./...
RUN go install -v ./...

CMD ["app"]

You can then build and run the Docker image:

$ docker build -t my-golang-app .
$ docker run -it --rm --name my-running-app my-golang-app

Compile your app inside the Docker container

There may be occasions where it is not appropriate to run your app inside a container. To compile, but not run your app inside the Docker instance, you can write something like:

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp balenalib/asus-tinker-edge-t-fedora-golang:latest go build -v

This will add your current directory as a volume to the container, set the working directory to the volume, and run the command go build which will tell go to compile the project in the working directory and output the executable to myapp.

User Feedback

Issues

If you have any problems with or questions about this image, please contact us through a GitHub issue.

Contributing

You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.

Documentation

Documentation for this image is stored in the base images documentation. Check it out for list of all of our base images including many specialised ones for e.g. node, python, go, smaller images, etc.

You can also find more details about new features in balenalib base images in this blog post

Docker Pull Command

docker pull balenalib/asus-tinker-edge-t-fedora-golang