Skip to content

cheshirecode/preact-marvel-pwa

Repository files navigation

Docker-preact-pwa

Greenkeeper badge

Experimenting with:

Demo link

Commands

With Node >= 7.0.x

# Installation
yarn

# Dev mode HMR
yarn start

# Production build
yarn build

# Local production test
NODE_ENV=production yarn start

With Docker > 17.06.x-ce and Docker Compose >= 1.17.0

For Windows/OSX, refer to here to work around HMR and similar file-watching modes that rely on native Linux's inotify events, which break in Docker's volume syncing.

Note Development script does a few things:

  • Starts sync operation if applicable
  • Attaches CLI to the running setup to view the logs.
  • When user presses Ctrl-C to stop the operation, it continues on to clean up the sync operation.
# Initial setup for linting/formatting
cp package.json package.json.tmp && \
cp package.json.editor package.json && \
yarn --pure-lockfile && \
mv package.json.tmp package.json

# Development mode
DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.yml -f docker-compose.dev.yml" && \
command -v docker-sync >/dev/null 2>&1 && docker-sync clean; docker rm docker-preact-pwa-dev; docker volume rm preact-pwa-sync; docker-sync start; \
$DOCKER_COMPOSE_CMD up --build && \
command -v docker-sync >/dev/null 2>&1 && docker-sync clean; docker rm docker-preact-pwa-dev; docker volume rm preact-pwa-sync && \
unset DOCKER_COMPOSE_CMD

# Build production image
DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.yml" && \
$DOCKER_COMPOSE_CMD build --force-rm && \
# $DOCKER_COMPOSE_CMD push && \
unset DOCKER_COMPOSE_CMD

# Production deployment
DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.yml" && \
$DOCKER_COMPOSE_CMD pull && \
$DOCKER_COMPOSE_CMD up -d && \
unset DOCKER_COMPOSE_CMD

Notes

Known issues