Skip to content

Commit

Permalink
Docker update (#161)
Browse files Browse the repository at this point in the history
  • Loading branch information
vsoftco authored Aug 14, 2023
1 parent d6dd53b commit 4a2c0c7
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 29 deletions.
3 changes: 3 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
Pre-release:
- Docker update, see the ["docker/"] directory

Version 4.3.3 - 8 August 2023
- Minor bugfix in pyqpp setup.py that prevented pip install from remote
- Bug fix in qpp::QEngine::execute() that prevented setting the initial
Expand Down
29 changes: 0 additions & 29 deletions Dockerfile

This file was deleted.

32 changes: 32 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
FROM ubuntu:latest
ENV TZ="America/Toronto"
RUN apt-get update && \
apt-get -y update && \
apt-get install -yq tzdata && \
ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata

RUN apt-get install -y build-essential python3.10 python3-pip python3-dev \
libeigen3-dev cmake sudo git vim

# Install pyqpp
RUN pip3 -q install pip --upgrade
RUN pip3 install jupyter matplotlib numpy
RUN pip3 install git+https://github.com/softwareqinc/qpp

# Enable a normal user with sudo access
RUN useradd -m -c "softwareQ" sq
RUN echo '%sq ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER sq

# Clone and install Quantum++
WORKDIR /home/sq
RUN git clone --depth 1 --branch main https://github.com/softwareqinc/qpp
WORKDIR /home/sq/qpp
RUN cmake -B build -DWITH_UNIT_TESTS=ON -DWITH_EXAMPLES=ON && \
sudo cmake --build build --target install
USER sq
WORKDIR /home/sq

# Create a notebook directory for Jupyter
RUN mkdir notebooks
23 changes: 23 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Docker

A self-explanatory minimalistic Docker file is provided
in [`Dockerfile`](https://github.com/softwareqinc/qpp/tree/main/docker/Dockerfile).

Build the image by executing

```shell
docker build -t softwareq-qpp .
```

Run the Jupyter server in a container by executing

```shell
docker run -p8888:8888 -it --workdir=/home/sq/notebooks softwareq-qpp sh -c "jupyter notebook --port=8888 --no-browser --ip=0.0.0.0"
```

In case you want to use the Docker container as a development environment, mount
your directory (in this case the current directory) in a Docker container with

```shell
docker run --rm -it --workdir=/home/sq/hostdir -v ${PWD}:/home/sq/hostdir softwareq-qpp /bin/bash
```

0 comments on commit 4a2c0c7

Please sign in to comment.