-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit simplifies the building of docker images by relying on a docker-comopse for each type of image. It is still possible to reduce the build to a single compose file + a shell script to set the correct tags and paths. However this is left for future consideration. Closes #15 and #26
- Loading branch information
Pedro Silva
committed
Jun 18, 2019
1 parent
57f3875
commit 8f293d8
Showing
12 changed files
with
283 additions
and
660 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,108 +1,45 @@ | ||
# Wirepas Oy | ||
FROM wirepas/base:1.1-ubuntu as builder | ||
|
||
# Builds wirepas messaging | ||
FROM wirepas/base:1.0-ubuntu as messaging-builder | ||
ENV PACKAGE_PATH=public-apis/wrappers/python | ||
WORKDIR /app_build | ||
|
||
COPY ${PACKAGE_PATH}/requirements.txt requirements.txt | ||
RUN pip3 install --no-cache-dir -r requirements.txt | ||
|
||
COPY ${PACKAGE_PATH}/ . | ||
RUN ./utils/compile_protos.sh | ||
RUN py3clean . || true \ | ||
&& python3 setup.py clean --all \ | ||
&& python3 setup.py sdist bdist_wheel | ||
|
||
# Builds sink service | ||
FROM wirepas/base:1.0-ubuntu as wm-sink-service-builder | ||
ENV PACKAGE_PATH=sink_service | ||
WORKDIR /app_build | ||
COPY sink_service app_build/sink_service | ||
COPY python_transport app_build/python_transport | ||
COPY container app_build/container | ||
|
||
COPY ${PACKAGE_PATH}/ . | ||
RUN make clean && make | ||
|
||
# Builds transport service | ||
FROM wirepas/base:1.0-ubuntu as wm-transport-service-builder | ||
ENV PACKAGE_PATH=python_transport | ||
WORKDIR /app_build | ||
RUN cd /app_build/sink_service/ \ | ||
&& make clean \ | ||
&& make | ||
|
||
COPY ${PACKAGE_PATH}/requirements.txt requirements.txt | ||
COPY ${PACKAGE_PATH}/ . | ||
RUN py3clean . || true \ | ||
&& python3 setup.py clean --all \ | ||
&& python3 setup.py sdist bdist_wheel | ||
|
||
RUN pip install Sphinx \ | ||
&& pip install sphinxcontrib-napoleon \ | ||
&& ./utils/generate_sphinx_docs.sh | ||
RUN ls dist/ | ||
RUN cd /app_build/python_transport/ \ | ||
&& ./utils/generate_wheel.sh | ||
|
||
# builds x86 gateway services | ||
FROM wirepas/base:1.0-ubuntu as wm-lxgw | ||
FROM wirepas/base:1.1-ubuntu as wm-lxgw | ||
USER root | ||
|
||
ARG WM_MESSAGING_PKG | ||
ENV WM_MESSAGING_PKG=${WM_MESSAGING_PKG:-"wirepas_messaging-*.tar*"} | ||
ENV SERVICE_HOME="${WM_HOME}"/gateway | ||
ENV SINK_SERVICE="${SERVICE_HOME}"/sink_service | ||
ENV TRANSPORT_SERVICE="${SERVICE_HOME}"/transport_service | ||
|
||
ARG WM_TRANSPORT_PKG | ||
ENV WM_TRANSPORT_PKG=${WM_TRANSPORT_PKG:-"wirepas_gateway-*.tar*"} | ||
|
||
ENV SERVICE_HOME=${HOME}/gateway | ||
ENV SINK_SERVICE=${SERVICE_HOME}/sink_service | ||
ENV TRANSPORT_SERVICE=${SERVICE_HOME}/transport_service | ||
|
||
COPY --from=messaging-builder /app_build/dist/${WM_MESSAGING_PKG} ${HOME}/dependencies/ | ||
COPY --from=messaging-builder /app_build/requirements.txt ${HOME}/dependencies/ | ||
|
||
COPY --from=wm-transport-service-builder /app_build/dist/${WM_TRANSPORT_PKG} ${TRANSPORT_SERVICE}/ | ||
COPY --from=wm-transport-service-builder /app_build/requirements.txt ${TRANSPORT_SERVICE}/ | ||
COPY --from=wm-transport-service-builder /app_build/docs/ ${TRANSPORT_SERVICE}/docs | ||
ENV WM_TRANSPORT_PKG=${WM_TRANSPORT_PKG:-"${TRANSPORT_SERVICE}/wirepas_gateway-*.tar.gz"} | ||
|
||
COPY --from=wm-sink-service-builder /app_build/build/sinkService /usr/local/bin/sinkService | ||
COPY --from=builder /app_build/python_transport/requirements.txt "${TRANSPORT_SERVICE}"/ | ||
COPY --from=builder /app_build/python_transport/dist/* "${TRANSPORT_SERVICE}"/ | ||
COPY --from=builder /app_build/python_transport/wirepas_gateway/wirepas_certs/extwirepas.pem /etc/extwirepas.pem | ||
COPY --from=builder /app_build/sink_service/build/sinkService /usr/local/bin/sinkService | ||
COPY --from=builder /app_build/sink_service/com.wirepas.sink.conf /etc/dbus-1/system.d/ | ||
|
||
WORKDIR ${HOME} | ||
RUN pip3 install --no-cache-dir -r ${HOME}/dependencies/requirements.txt | ||
RUN pip3 install --no-cache-dir -r ${TRANSPORT_SERVICE}/requirements.txt | ||
RUN pip3 install --upgrade pip | ||
RUN pip3 install --no-cache-dir -r "${TRANSPORT_SERVICE}"/requirements.txt | ||
RUN pip3 install --no-cache-dir ${WM_TRANSPORT_PKG} | ||
COPY --from=builder /app_build/container/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh | ||
COPY --from=builder /app_build/container/transport.template "${TRANSPORT_SERVICE}/transport.template" | ||
RUN rm -rf "${WM_HOME}"/.cache && chown "${WM_USER}":"${WM_USER}" -R "${WM_HOME}" | ||
|
||
RUN pip3 install --no-cache-dir ${HOME}/dependencies/${WM_MESSAGING_PKG} | ||
RUN pip3 install --no-cache-dir ${TRANSPORT_SERVICE}/${WM_TRANSPORT_PKG} | ||
|
||
COPY python_transport/wirepas_gateway/wirepas_certs/extwirepas.pem /etc/extwirepas.pem | ||
COPY sink_service/com.wirepas.sink.conf /etc/dbus-1/system.d/ | ||
|
||
RUN chown ${USER}:${USER} -R ${HOME} \ | ||
&& rm -rf ${HOME}/.cache | ||
|
||
# Environment | ||
ARG WM_SERVICES_HOST | ||
ARG WM_SERVICES_MQTT_PORT | ||
ARG WM_SERVICES_MQTT_USER | ||
ARG WM_SERVICES_MQTT_PASSWORD | ||
ARG WM_SERVICES_CERTIFICATE_CHAIN | ||
|
||
ARG WM_SINK_UART_PORT | ||
ARG WM_SINK_UART_BITRATE | ||
ARG WM_SINK_ID | ||
|
||
ENV WM_SERVICES_HOST=${WM_SERVICES_HOST:-"localhost"} | ||
ENV WM_SERVICES_MQTT_PORT=${WM_SERVICES_MQTT_PORT:-"1883"} | ||
ENV WM_SERVICES_MQTT_USER=${WM_SERVICES_MQTT_USER:-"mqttuser"} | ||
ENV WM_SERVICES_MQTT_PASSWORD=${WM_SERVICES_MQTT_PASSWORD:-"12sdftat3089ajoiausd+91as12"} | ||
ENV WM_SERVICES_CERTIFICATE_CHAIN=${WM_SERVICES_CERTIFICATE_CHAIN:-""} | ||
ENV WM_SERVICES_GATEWAY_ID=${WM_SERVICES_GATEWAY_ID:-""} | ||
|
||
ENV WM_SINK_UART_PORT=${WM_SINK_UART_PORT:-"/dev/ttyACM0"} | ||
ENV WM_SINK_UART_BITRATE={WM_SINK_UART_BITRATE:-"125000"} | ||
ENV WM_SINK_ID=${WM_SINK_ID:-"0"} | ||
|
||
ENV EXEC_TRANSPORT "wm-gw" | ||
ENV EXEC_SINK /usr/local/bin/sinkService | ||
|
||
COPY container/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh | ||
RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat | ||
ENTRYPOINT ["docker-entrypoint.sh"] | ||
|
||
USER ${USER} | ||
WORKDIR ${WM_HOME} | ||
USER ${WM_USER} | ||
CMD ["sink"] | ||
|
||
ARG LXGW_VERSION | ||
LABEL version=${LXGW_VERSION} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Wirepas Oy | ||
# | ||
# Linux gateway | ||
# | ||
|
||
version: '3' | ||
services: | ||
|
||
wm-sink: | ||
container_name: wm-sink | ||
image: wirepas/gateway-x86:edge | ||
build: | ||
context: ../.. | ||
dockerfile: container/dev/Dockerfile | ||
args: | ||
LXGW_VERSION: ${LXGW_VERSION:-"local-build"} | ||
|
||
user: root | ||
privileged: true | ||
stdin_open: true | ||
tty: true | ||
|
||
restart: always | ||
env_file: | ||
- ../wm_gateway.env | ||
|
||
volumes: | ||
- /dev:/dev | ||
- /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket | ||
|
||
logging: | ||
driver: journald | ||
|
||
command: sink | ||
|
||
wm-transport: | ||
container_name: wm-transport | ||
image: wirepas/gateway-x86:edge | ||
build: | ||
context: ../.. | ||
dockerfile: container/dev/Dockerfile | ||
args: | ||
LXGW_VERSION: ${LXGW_VERSION:-"local-build"} | ||
|
||
user: root | ||
network_mode: host | ||
privileged: true | ||
stdin_open: true | ||
tty: true | ||
|
||
restart: always | ||
env_file: | ||
- ../wm_gateway.env | ||
|
||
volumes: | ||
- /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket | ||
|
||
logging: | ||
driver: journald | ||
|
||
command: transport |
Oops, something went wrong.