Skip to content
This repository has been archived by the owner on May 27, 2023. It is now read-only.

Releases: JasonYangShadow/lpmx

Alpha Pre-Release v2.0.1

30 Apr 14:10
Compare
Choose a tag to compare
Pre-release

In this release, I have added new support for parsing yaml file, users can have docker-compose like experience when using LPMX.

The command to use compose is:

lpmx compose -f yaml_file
version: 1
apps:
  - name: "minimap2"
    image: "evolbioinfo/minimap2:v2.17"
    type: "docker"
    expose:
      - /usr/local/bin/minimap2:minimap2
    share:
      - /home/vagrant/share:/share
  - name: "target"
    image: "jasonyangshadow/example:1"
    type: "docker"
    command: "minimap -V && minimap '-a /share/human.fa /share/orang.fa > /share/test.sam'"
    inject:
      - /home/vagrant/bin/minimap2:/usr/bin/minimap
    share:
      - /home/vagrant/share:/share
    depends:
        - minimap2
  - name: "singularity container"
    image: "/home/vagrant/ubuntu.sif"
    type: "singularity"
    command: "cat /etc/os-release && echo $hello"
    envs:
      - hello=1
      - world=2

An explanation for the yaml template structure:

  1. version (required) is the yaml template version info, should be 1 here
  2. apps (required) defines the top level apps label, just hardcoded
  3. Followings are all container definitions
  • name (required): container name, user defined
  • image (required): container image name (DockerHub name or local absolute path for sif file)
  • type (required): should be docker or singularity
  • command (optional): command running inside container
  • inject (optional): inject binaries from host or other container into current container (should be absolute path)
  • share (optional): directories shared between host and container
  • depends (optional): define the requirement of current container, name defined in depends should exist in yaml file
  • expose (optional): expose apps inside current contains to host or other containers
  • envs (optional): environment variables added to containers
  • port (optional): mapping ports (not support now)

An example showing the usage. (The example is from https://github.com/JasonYangShadow/lpmx#quick-run)
The demo shows that we are composing two containers, one is built based on docker image named evolbioinfo/minimap2:v2.17, another one is based on docker image named jasonyangshadow/example:1, the definitions in the yaml file indicates that:

  1. for container named minimap2, it exposes inside minimap2 to host (version: 2.17-r941)
  2. for container named target, it injects exposed minimap2 (version: 2.17-r941) into itself and thus overrides its default minimap (version: 0.2-r123), and runs minimap analysis based on the data in shared folder with host.
  3. for container named singularity container, it extracts and imports layers from sif image and runs simple commands inside container

This demo shows that LPMX can inject apps in other containers into current container to dynamically override inside executables without touching the image. Fantastic, hah! isn't it?
MobaXterm_o4fyTOQmZF

Alpha Pre-Release v1.9.2

23 Apr 06:53
Compare
Choose a tag to compare
Pre-release

Remove configuration writing to bashrc

Alpha Pre-Release v1.9.1

20 Feb 07:29
Compare
Choose a tag to compare
Pre-release

In this version, I patched the hard-link untar issue, where all binaries in the bin or sbin folder are hard linked to /bin/arch file in the specific distro.
No impacts for other distros.

Alpha Pre-Release v1.9.0

27 Dec 05:13
Compare
Choose a tag to compare
Pre-release

Important (this release is an experimental one, we removed some dependencies and compile the libfakechroot against glibc 2.12 in centos 6.10 for better compatibility, but might cause some unexpected issues)

From version v.1.9.0, LPMX changes a lot on its implementation, such as removing its dependency of Memcached, which means it won't use Memcache as the info exchanger any longer, but using pure file instead, which will reduce the dependency complexity of LPMX.

From the end user's perspective, please do not upgrade for now until the release becomes more stable and passes more tests.
For the old version (<1.9.0), I will continue providing support.

Alpha Pre-Release v1.8.1

04 Dec 09:42
Compare
Choose a tag to compare
Pre-release

In this release we add a --use-old-glibc option for LPMX to solve exceptions when container image & host are incompatible on glibc.

In the following example, you can see that by using lpmx reset command we can reset the environment with different glibc compiling against libfakechroot. so that some glibc mismatch issue will be eliminated.
Peek 2021-12-04 18-40

Alpha Pre-Release v1.8

29 Sep 15:00
Compare
Choose a tag to compare
Pre-release

Add a new feature that directly importing directories generated from Skopeo.
https://github.com/containers/skopeo

LPMX can parse the manifest.json file generated by Skopeo and copy the layers to LPMX data directory.
Peek 2021-09-29 23-56

Alpha Pre-Release v1.7.2

24 Aug 13:52
Compare
Choose a tag to compare
Pre-release

add docker merge sub-command for merging the layers of both local docker images and images downloaded from docker hub.

lpmx docker merge image:tag

it will automatically generate a new image with only one layer named image:tag-merge

Notice:
from this version for volume mapping parameter, please change to use the following format:

lpmx docker create -v host_path1=container_path1:host_path2=container_path2 image:tag

Alpha Pre-Release v1.7.1

30 May 13:45
Compare
Choose a tag to compare
Pre-release

Add support for direct executable mapping through CLI

lpmx docker create -m host_path1=container_path1:host_path2=container_path2 ubuntu:16.04
lpmx docker fastrun -m host_path1=container_path1:host_path2=container_path2 ubuntu:16.04 "container_path1"

Some fixes on the 'lpmx list' command

Alpha Pre-Release v1.7

11 Jan 23:36
Compare
Choose a tag to compare
Pre-release

Add new features of caching exchanging info to file.
Add new support for containerizing the canu assembler.

https://github.com/JasonYangShadow/lpmx/wiki/canu-assembler

Alpha Pre-Release v1.6.3

26 Nov 08:10
Compare
Choose a tag to compare
Pre-release

In this release, we patched the feature of calling applications in other containers or in the host from the current container. By using 'lpmx set' command, an exec mapping can be set dynamically. See the following gif for the feature
GxuhQ2SWFA