diff --git a/resources/templates/dev_containers/Dockerfile b/resources/templates/dev_containers/Dockerfile index 74c337dc..c9cce5d6 100644 --- a/resources/templates/dev_containers/Dockerfile +++ b/resources/templates/dev_containers/Dockerfile @@ -1,58 +1,49 @@ -FROM fedora:latest +# https://github.com/starr-dusT/dotfiles +# Usage: docker build -t . +# docker run -d --name -p 8080:8080 -v .:/root/src -it -ENV TERM xterm-256color +ARG VARIANT="3.18.3" -############################################################################### -# install -############################################################################### +# Pull alpine container from IronBank (See readme to setup pulling from IronBank with Docker) +FROM "alpine:latest" +#FROM "registry1.dso.mil/ironbank/opensource/alpinelinux/alpine:${VARIANT}" -# base -RUN dnf install -y \ - git \ - git-lfs \ - python \ - python3 \ - python3-pip \ - python3-tornado \ - cargo \ - npm \ - gcc \ - gcc-c++ \ - make \ - openssl-devel \ - libffi-devel \ - redhat-rpm-config \ - vim \ - tmux \ - hostname \ - && dnf clean all +##### BASE CONFIG ##### + +# Install edge repo +RUN echo https://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories +RUN apk --no-check-certificate update -# user -RUN dnf install -y \ - neovim +# Install Alpine packages for python +RUN apk add --no-check-certificate --virtual .base-python \ + python3 py3-pip ipython py3-matplotlib py3-psutil jupyter-notebook py3-tornado -############################################################################### -# general -############################################################################### +# Install Alpine build dependices for pip installs +RUN apk add --no-check-certificate --virtual .build-deps \ + alpine-sdk cmake gfortran openblas-dev hdf5-dev \ + python3-dev py3-numpy-dev jpeg-dev py3-qt5 -# add user -RUN useradd -u 1000 -g 100 -ms /bin/bash dev \ - && echo 'dev:pass' | chpasswd -RUN usermod -aG wheel dev +# Install pip packages for python +RUN pip install \ + --break-system-packages --trusted-host pypi.org --trusted-host files.pythonhosted.org \ + ipykernel ipympl pandas numpy -############################################################################### -# user config -############################################################################### +# Install other useful packages +RUN apk add --no-check-certificate --virtual .useful-packs \ + bash tmux git stow openssh vim nano -USER dev -WORKDIR /home/dev - -RUN git clone --depth 1 https://github.com/wbthomason/packer.nvim \ - ~/.local/share/nvim/site/pack/packer/start/packer.nvim +##### PERSONAL CONFIG ##### # clone dotfiles RUN sh -c "$(curl -fsLS get.chezmoi.io)" ENV PATH="/home/dev/bin:${PATH}" RUN chezmoi init --apply https://github.com/starr-dusT/dotfiles +# Install other useful packages +RUN apk add --no-check-certificate --virtual .user-packs \ + neovim cargo npm go +# Install plugins in image +RUN nvim --headless "+Lazy! sync" +qa + +WORKDIR /root CMD ["/bin/bash"] diff --git a/resources/templates/dev_containers/dev.sh b/resources/templates/dev_containers/dev.sh deleted file mode 100755 index 71a05409..00000000 --- a/resources/templates/dev_containers/dev.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -# https://github.com/starr-dusT/dotfiles - -image_name="" -container_name="" - -# if container image doesn't exist build it -if [ "$(docker images -q $image_name)" ]; then - echo "Image exists don't need to build..." -else - docker run -t "$image_name" . -fi - -# if container doesn't exist run it else start/attach -if [ "$(docker ps -a --filter "status=exited" --format "{{.Names}}" -f name=$container_name)" ]; then - echo "Attaching to existing container..." - docker start "$container_name" - docker attach "$container_name" -else - echo "Running new container..." - docker run --name "$container_name" --network host -v ./:/home/dev/src -it "$image_name" -fi