diff options
| author | bozo.kopic <bozo.kopic@gmail.com> | 2020-04-11 20:21:24 +0200 |
|---|---|---|
| committer | bozo.kopic <bozo.kopic@gmail.com> | 2020-04-11 20:21:24 +0200 |
| commit | 56a75fcb8f5a9e4c05ccec8eb4a3345a115da441 (patch) | |
| tree | fb47ceaa9da22713898e28e61f95d5ca670ee95a | |
| parent | d950fe9c67ec052ce13f54c50c25387b61c3ce32 (diff) | |
docker build
| -rw-r--r-- | .dockerignore | 6 | ||||
| -rw-r--r-- | .gitignore | 5 | ||||
| -rw-r--r-- | Dockerfile | 25 | ||||
| -rw-r--r-- | Procfile | 2 | ||||
| -rw-r--r-- | dodo.py | 23 |
5 files changed, 57 insertions, 4 deletions
diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2b6c642 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +__pycache__ +/.doit.db +/build +/dist +/node_modules +/yarn-error.log @@ -1,7 +1,6 @@ __pycache__ +/.doit.db /build /dist -/.doit.* -/yarn-error.log /node_modules -/src_py/opcut/json_validator.py +/yarn-error.log diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0e093c5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM python:3.8-buster AS base + + +FROM base AS build + +RUN apt-get update \ + && apt-get install -q -y nodejs yarnpkg \ + && ln -s /usr/bin/yarnpkg /usr/bin/yarn + +COPY . /opcut + +RUN cd /opcut \ + && pip install -r requirements.txt \ + && doit + + +FROM base AS run + +COPY --from=build /opcut/dist /opcut/dist + +RUN pip install /opcut/dist/* + +EXPOSE 80 + +CMD ["opcut", "server", "--addr", "http://0.0.0.0:80"] @@ -1 +1 @@ -web: python -m opcut.main server --ui-addr http://0.0.0.0:$PORT +web: python -m opcut.main server --addr http://0.0.0.0:$PORT @@ -28,6 +28,8 @@ dist_dir = Path('dist') py_build_dir = build_dir / 'py' js_build_dir = build_dir / 'js' +docker_img = 'bozokopic/opcut' + def task_clean_all(): """Clean all""" @@ -110,6 +112,27 @@ def task_dist(): 'task_dep': ['py_build']} +def task_docker_build(): + """Create docker image""" + def build(): + version = _get_version() + subprocess.run(['docker', 'build', '-t', f'{docker_img}:{version}', + '.'], + check=True) + + return {'actions': [build]} + + +def task_docker_upload(): + """Upload docker image""" + def upload(): + version = _get_version() + subprocess.run(['docker', 'push', f'{docker_img}:{version}'], + check=True) + + return {'actions': [upload]} + + def _create_setup_py(path): version = _get_version() readme = _get_readme() |
