Git Product home page Git Product logo

dartiq-image's Introduction

Warning

DARTIQ project is not developed anymore. Please use Nix flakes instead.

Dockerized ARTIQ Image Repository

This repository provides Docker image with ARTIQ. It uses Nix package manager and its dockerTools.buildImage package to build the image with all dependencies from scratch. Scripts that define ARTIQ environment are provided by M-Labs in nix-scripts repository.

This image is designed to be used with DARTIQ script.

Prebuilt image

Prebuilt image can be pulled from Docker Hub:

# Full-featured ~5GB, based on repo head
docker pull technosystem/dartiq:latest       
# Full-featured ~5GB, stable 6.0
docker pull technosystem/dartiq:6.0
# Minimal version ~2.5GB, based on repo head
docker pull technosystem/dartiq:latest_mini
# Minimal version ~2.5GB, stable 6.0
docker pull technosystem/dartiq:6.0_mini 

Alternatively you can build your own image locally. The process is described in the following section.

Building image

You can also build an image on your own using build_script. This will use nixos/nix Docker image to build your Dockerized ARTIQ environment. Please note that the script runs container with your host system Docker daemon socket mounted, thus it will copy the outcome image directly into your local Docker image store.

Essential configuration

Build process is configured with the following environment variables:

  • ARTIQ_REV: revision of ARTIQ repository (ex. 6.0);
  • ARTIQ_REPO: ARTIQ repository URL (ex. https://github.com/m-labs/artiq);
  • NIX_SCRIPTS_REV: revision of the Nix Scripts repository (ex. a1d134ad);
  • NIX_SCRIPTS_REPO: Nix Scripts repository URL (ex. https://git.m-labs.hk/m-labs/nix-scripts.git);
  • NIX_PACKAGES: URL for nixpkgs to be used (ex. https://nixos.org/channels/nixpkgs-20.03-darwin);
  • IMAGE_TAG: tag for the output image.
  • TARGET: variant to build, either dartiq (~5.3GB) or dartiq_mini (~2.2GB).

You don't need to set the configuration variables by hand. Repository contains example configurations that you can source:

  • artiq6.env: for stable ARTIQ 6.0 (full-featured)
  • artiq6_mini.env: for stable ARTIQ 6.0 (minimal image)
  • artiq_dev.env: for latest version from repository (full-featured)
  • artiq_dev_mini.env: for latest version from repository (minimal image)

Beware that you can't choose NIX_PACKAGES and Nix Script revision arbitrarily, so until you know what you're doing, it's better to refer to the example configurations.

Extra variables

Additionally, you can set the following variables:

  • EXTRA_BINARY_CACHE: URLs for extra binary caches, when not set https://cache.nixos.org and https://nixbld.m-labs.hk are used;
  • EXTRA_CACHE_SIGNATURES: signatures for extra binary caches.

Example usage

For example, if you want to build dartiq:6.0 stable image, run:

source artiq6.env
./build_script

The process is pretty time-consuming, it can take over half an hour.

To check DARTIQ images available on your machine, you can type:

docker images | grep dartiq

The result should look similar to the following:

technosystem/dartiq     6.0   96d465208b80   31 minutes ago   5.34GB

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.