Dockerize reactclient.

[?]
Jan 23, 2021, 5:01 PM
XA7SOE6JNY7BKAUOUGAROVLGXO7E3MSHVG4LZYHSPITH5PU4W5ZQC

Dependencies

  • [2] 3GLHIR4F Add migrate script for prod system.
  • [3] GMYPBCWE Make docker-compose work.
  • [4] IR75ZMX3 Return actual events for interval ends, not just timestamps.
  • [*] LEINLS3X Update deployment documentation.
  • [*] 4ZLEDBK7 Initial attempts at dockerizing, cabal isn't cooperating.

Change contents

  • edit in Makefile at line 12
    [3.111]
    [3.111]
    build-reactclient-image:
    docker build -t aftok/aftok-reactclient:latest -f ./docker/Dockerfile-reactclient .
  • replacement in deploy/docker-compose.prod.yml at line 28
    [2.552][2.552:598]()
    entrypoint: /opt/aftok/aftok-client-cp.sh
    [2.552]
    [2.598]
    entrypoint: /opt/aftok/aftok-client-cp.sh dist
  • file addition: Dockerfile-reactclient (----------)
    [7.1510]
    FROM ubuntu:focal
    MAINTAINER Kris Nuttycombe <kris@aftok.com>
    ENV LANG C.UTF-8
    ENV TZ America/Denver
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    # Install build tools & library dependencies
    RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    libtinfo5 nodejs npm netbase
    RUN apt-get install -y --no-install-recommends ca-certificates
    RUN update-ca-certificates
    RUN mkdir -p /opt/aftok/client
    WORKDIR /opt/aftok/client
    # Add dist-volume directory for use with docker-compose sharing
    # of client executables via volumes.
    ADD ./docker/aftok-client-cp.sh /opt/aftok/
    RUN chmod 700 /opt/aftok/aftok-client-cp.sh
    RUN mkdir /opt/aftok/client/dist-volume
    ADD ./reactclient/package.json /opt/aftok/client/package.json
    RUN npm install
    ENV PATH="./node_modules/.bin:${PATH}"
    # Add static assets
    ADD ./aftok.com /opt/aftok/client/staticsite
    ADD ./reactclient/src /opt/aftok/client/src
    ADD ./reactclient/public /opt/aftok/client/public
    RUN npm run build
  • replacement in docker/aftok-client-cp.sh at line 4
    [3.9492][3.9492:9553]()
    cp -r /opt/aftok/client/dist/* /opt/aftok/client/dist-volume
    [3.9492]
    [3.9553]
    cp -r /opt/aftok/client/$1/* /opt/aftok/client/dist-volume
  • replacement in docker-compose.yml at line 27
    [3.9748][3.9748:9794]()
    entrypoint: /opt/aftok/aftok-client-cp.sh
    [3.9748]
    [3.9794]
    entrypoint: /opt/aftok/aftok-client-cp.sh dist
  • edit in docker-compose.yml at line 31
    [3.9859]
    [3.9859]
    target: /opt/aftok/client/dist-volume
    aftok-reactclient:
    image: aftok/aftok-reactclient:latest
    container_name: aftok-reactclient
    entrypoint: /opt/aftok/aftok-client-cp.sh build
    volumes:
    - type: volume
    source: v_aftok-reactclient
  • edit in docker-compose.yml at line 73
    [2.2788]
    [2.2788]
    read_only: true
    - type: volume
    source: v_aftok-reactclient
    target: /opt/static/app2
  • edit in docker-compose.yml at line 124
    [3.10513]
    [3.24745]
    v_aftok-reactclient: