Coder Social home page Coder Social logo

tugboat's Introduction

Top Langs

tugboat's People

Contributors

dmolitor avatar

Watchers

 avatar

tugboat's Issues

Explore using Nix as package manager

To allow the user to specify R, Python, etc. dependencies at build time, the auto-generated Dockerfile currently relies on installing a super-comprehensive list of system dependencies via apt-get install and hoping that all bases are covered. For obvious reasons this is a clunky, inefficient way of handling system dependencies; could Nix be the answer? Idk, but it seems promising... ๐Ÿค”

Mamba install Python with user-specified version

Currently installing Python with mamba. However, specifying a specific Python version, e.g. 3.10.3, sometimes causes the mamba install to fail.

Issue

The current Python in the generated Dockerfile looks like

ENV PYTHON_VERSION=3.10.3
...
RUN ... && \
    mamba install -y python=${PYTHON_VERSION} && \
    ...

This fails at the mamba install -y python ... step because apparently mamba can't find that specific version.

Solution

My temporary(?) solution to this is to fall back to the latest available major version if the specific version installation fails. E.g. in this case we would fall back to installing Python 3.10 when 3.10.3 fails. The updated Dockerfile will look like the above with a couple small changes:

ENV PYTHON_VERSION=3.10.3
ENV PYTHON_MAJOR_VERSION=3.10
...
RUN ... && \
    mamba install -y python=${PYTHON_VERSION} || \
    mamba install -y python=${PYTHON_MAJOR_VERSION}
    ...

Translate to Go

In the mid/long-run I don't want this in Python. The goal is to do what it says...translate this into Go.

Use `docker buildx` for multi-arch builds

Currently the Docker image is built for whatever platform it's being built on. By default we should be doing multi-arch builds when possible. For example, we should automatically be building for linux/amd64 and linux/arm64 platforms (and perhaps some others?) when possible.

Note Since currently Stata must be built/run with the --platform linux/amd64 flag, we should only do multi-arch builds when Stata is not included in the image.

Install Stata with user-specified version

Installing Stata in the Docker container may be a challenge.

Main problems

  • Does Stata even have installers for ARM64 architecture on Linux? Idk so I guess we will find out
  • Assuming we can install Stata on both AMD64 and ARM64 systems, we then need to get access to the user's license so as to activate Stata within the image. This is a run-time thing since we need to use each individual's license. Ugh ๐Ÿคฎ proprietary software absolutely sucks. We need to stop using this stuff **sigh**

Other stuff may pop up. Will update this thread as I progress...

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.