diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 839e3111..e50d6f85 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -29,23 +29,21 @@ jobs: shell: bash -l {0} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 name: Checkout Branch / Pull Request - name: Install Mamba (Linux) - uses: mamba-org/provision-with-micromamba@main + uses: mamba-org/setup-micromamba@v1 with: environment-file: environment-dev.yml - extra-specs: | - python=${{ matrix.python-version }} + python-version: ${{ matrix.python-version }} if: runner.os != 'Windows' - name: Install Mamba (Windows) - uses: mamba-org/provision-with-micromamba@main + uses: mamba-org/setup-micromamba@v1 with: environment-file: environment-dev-win.yml - extra-specs: | - python=${{ matrix.python-version }} + python-version: ${{ matrix.python-version }} if: runner.os == 'Windows' - name: Install Package @@ -70,15 +68,14 @@ jobs: shell: bash -l {0} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 name: Checkout Branch / Pull Request - name: Install Mamba - uses: mamba-org/provision-with-micromamba@main + uses: mamba-org/setup-micromamba@v1 with: environment-file: environment-dev.yml - extra-specs: | - python=3.8 + python-version: "3.10" - name: Clone mBuild and GMSO run: | @@ -107,31 +104,32 @@ jobs: if: github.event_name != 'pull_request' steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Get Tagged Version run: | - echo "DOCKER_TAGS=mosdef/foyer:${GITHUB_REF_NAME}, mosdef/foyer:stable" >> $GITHUB_ENV - if: github.ref_type == 'tag' + echo "DOCKER_TAGS=mosdef/foyer:${GITHUB_REF_NAME}, mosdef/foyer:stable" >> $GITHUB_ENV if: github.ref_type == 'tag' - name: Get Push Version run: | - echo "DOCKER_TAGS=mosdef/foyer:${GITHUB_REF_NAME}, mosdef/foyer:latest" >> $GITHUB_ENV - if: github.ref_type == 'branch' + echo "DOCKER_TAGS=mosdef/foyer:${GITHUB_REF_NAME}, mosdef/foyer:stable" >> $GITHUB_ENV if: github.ref_type == 'branch' - name: Docker Image Info run: | echo Docker Image tags: ${DOCKER_TAGS} - name: Build and Push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v4 with: push: true tags: ${{ env.DOCKER_TAGS }} diff --git a/Dockerfile b/Dockerfile index aba0ee4e..3a57f770 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,11 @@ -ARG PY_VERSION=3.8 -FROM continuumio/miniconda3:4.10.3-alpine AS builder +FROM mambaorg/micromamba:1.4.3 EXPOSE 8888 LABEL maintainer.name="mosdef-hub"\ maintainer.url="https://mosdef.org" -ENV PATH /opt/conda/bin:$PATH +ENV PATH /opt/micromamba/bin:$PATH USER root @@ -14,32 +13,17 @@ ADD . /foyer WORKDIR /foyer -# Create a group and user -RUN addgroup -S anaconda && adduser -S anaconda -G anaconda +RUN apt-get update && apt-get install -y git -RUN /sbin/apk add --no-cache git && \ - conda update conda -yq && conda install -c conda-forge mamba && \ - conda config --set always_yes yes --set changeps1 no && \ - . /opt/conda/etc/profile.d/conda.sh && \ - sed -i -E "s/python.*$/python="$(PY_VERSION)"/" environment-dev.yml && \ - mamba env create nomkl -f environment-dev.yml && \ - conda activate foyer-dev && \ - mamba install -c conda-forge nomkl jupyter python="$PY_VERSION" && \ - python setup.py install && \ - echo "source activate foyer-dev" >> /home/anaconda/.profile && \ - conda clean -afy && \ - mkdir -p /home/anaconda/data && \ - chown -R anaconda:anaconda /foyer && \ - chown -R anaconda:anaconda /opt && \ - chown -R anaconda:anaconda /home/anaconda +RUN micromamba create --file environment-dev.yml +ARG MAMBA_DOCKERFILE_ACTIVATE=1 # (otherwise python will not be found) -WORKDIR /home/anaconda +RUN micromamba install -c conda-forge nomkl jupyter python="3.10" +RUN python setup.py install +RUN echo "source activate foyer-dev" >> /home/.bashrc +RUN micromamba clean -afy +RUN mkdir -p /home/data -COPY devtools/docker-entrypoint.sh /entrypoint.sh -RUN chmod a+x /entrypoint.sh - -USER anaconda - -ENTRYPOINT ["/entrypoint.sh"] +ENTRYPOINT ["/usr/local/bin/_entrypoint.sh"] CMD ["jupyter"] diff --git a/devtools/appveyor-ci/run_with_env.cmd b/devtools/appveyor-ci/run_with_env.cmd deleted file mode 100644 index 72fb4514..00000000 --- a/devtools/appveyor-ci/run_with_env.cmd +++ /dev/null @@ -1,50 +0,0 @@ -:: To build extensions for 64 bit Python 3, we need to configure environment -:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) -:: -:: To build extensions for 64 bit Python 2, we need to configure environment -:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) -:: -:: 32 bit builds do not require specific environment configurations. -:: -:: Note: this script needs to be run with the /E:ON and /V:ON flags for the -:: cmd interpreter, at least for (SDK v7.0) -:: -:: More details at: -:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows -:: http://stackoverflow.com/a/13751649/163740 -:: -:: Author: Olivier Grisel -:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ - -:: Modified for use with conda environment variables - -@ECHO OFF - -SET COMMAND_TO_RUN=%* -SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows - -SET MAJOR_PYTHON_VERSION="%CONDA_PY:~0,1%" -IF %MAJOR_PYTHON_VERSION% == "2" ( - SET WINDOWS_SDK_VERSION="v7.0" -) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( - SET WINDOWS_SDK_VERSION="v7.1" -) ELSE ( - ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" - EXIT 1 -) - -IF "%ARCH%"=="64" ( - ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture - SET DISTUTILS_USE_SDK=1 - SET MSSdk=1 - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -) ELSE ( - ECHO Using default MSVC build environment for 32 bit architecture - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -)