-
Notifications
You must be signed in to change notification settings - Fork 123
Elektra Web - docker images #2100
Changes from all commits
92638be
1d59bcd
cd58fbd
e173bdc
8b8c564
93a0581
1851751
dacea9c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Elektra Web docker images | ||
|
||
- `elektra/web-base` - base image for elektra web, all other images build upon this (builds elektra with `yajl` and `kdb`) | ||
- `elektra/elektrad` - image that only starts elektrad | ||
- `elektra/webd` - image that only starts webd | ||
- `elektra/elektrad-demo` - same as `elektrad`, but with a KDB config set up (for demo, should run on http://elektrad-demo.libelektra.org) | ||
- `elektra/webd-demo` - same as `webd`, but with 2 instances already created, they both connect to http://elektrad-demo.libelektra.org with different visibility levels (for demo, should run on http://webui.libelektra.org) | ||
- `elektra/web` - image that starts elektrad & webd (for those who just want to try out Elektra Web locally, also mentioned in quickstart in README of #2099) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# base image for elektra web, all other images build upon this (builds elektra with `yajl` and `kdb`) | ||
|
||
FROM ubuntu:16.04 | ||
|
||
# elektra deps | ||
RUN apt-get update -y | ||
RUN apt-get install -y cmake git build-essential | ||
|
||
# elektra web deps | ||
RUN apt-get install -y libyajl-dev curl nodejs-legacy npm | ||
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - | ||
RUN apt-get install -y nodejs | ||
|
||
# pull latest libelektra | ||
RUN mkdir /home/elektra | ||
WORKDIR /home/elektra | ||
ARG ELEKTRA_VER=master | ||
RUN git clone -b ${ELEKTRA_VER} --depth 1 https://github.com/ElektraInitiative/libelektra.git | ||
WORKDIR /home/elektra/libelektra | ||
|
||
# build & install libelektra | ||
RUN mkdir /home/elektra/libelektra/build | ||
WORKDIR /home/elektra/libelektra/build | ||
RUN cmake .. -DTOOLS="kdb;web" | ||
RUN make | ||
RUN make install | ||
|
||
# prepare user and home dir | ||
RUN groupadd -r elektra && useradd --no-log-init -r -g elektra elektra | ||
RUN chown -R elektra:elektra /home/elektra |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# same as `elektrad`, but with a KDB config set up (for demo) | ||
|
||
FROM elektra/web-base:latest | ||
|
||
WORKDIR /home/elektra | ||
|
||
# prepare demo environment | ||
|
||
# mount copy of /etc/hosts to user/hosts | ||
|
||
# mount as root user | ||
RUN kdb mount --with-recommends hosts user/hosts hosts | ||
|
||
# then switch to elektra user | ||
USER elektra | ||
RUN mkdir /home/elektra/.config | ||
RUN cp /etc/hosts /home/elektra/.config/hosts | ||
|
||
# create user/app structure | ||
COPY --chown=elektra:elektra demo.kdb /home/elektra/ | ||
RUN kdb import user/app < /home/elektra/demo.kdb | ||
|
||
# run elektrad | ||
EXPOSE 33333 | ||
CMD ["kdb","run-elektrad"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# image that only starts elektrad | ||
|
||
FROM elektra/web-base:latest | ||
|
||
WORKDIR /home/elektra | ||
USER elektra | ||
|
||
# run elektrad | ||
EXPOSE 33333 | ||
CMD ["kdb","run-elektrad"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# image that starts elektrad & webd (for quickstart with elektra web) | ||
|
||
FROM elektra/web-base:latest | ||
|
||
WORKDIR /home/elektra | ||
USER elektra | ||
|
||
# create start script | ||
RUN printf "#!/bin/bash\nkdb run-elektrad &\nkdb run-web" > start | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought you will split this up into two containers? Please give a description about the individual dockerfiles. (as comments and in the README.md) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @markus2330 I explained this in the PR description, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added the description to a README file There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thank you! Please always keep all information within the repo (and not in the PR description). |
||
RUN chmod +x start | ||
|
||
# run elektrad and webd in one container | ||
EXPOSE 33333 | ||
EXPOSE 33334 | ||
CMD ["/home/elektra/start"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# same as `webd`, but with 2 instances already created, they both connect to http://elektrad-demo.libelektra.org with different visibility levels (for demo) | ||
|
||
FROM elektra/web-base:latest | ||
|
||
WORKDIR /home/elektra | ||
USER elektra | ||
|
||
# prepare demo environment | ||
COPY --chown=elektra:elektra demo.kdb /home/elektra/ | ||
RUN kdb import user/sw < /home/elektra/demo.kdb | ||
|
||
# run webd (serves client) | ||
EXPOSE 33334 | ||
CMD ["kdb","run-web"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# image that only starts webd | ||
|
||
FROM elektra/web-base:latest | ||
|
||
WORKDIR /home/elektra | ||
USER elektra | ||
|
||
# run webd (serves client) | ||
EXPOSE 33334 | ||
CMD ["kdb","run-web"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will that work? shouldn't you be the elektra user when inheriting from your base image?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes,
USER
is not called in the base image