Skip to content

anamba/docker-amber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-amber - Docker image for Amber development

Version License Amber Framework

Docker Hub: anamba/crystal-amber-dev

Based on Phusion's excellent, developer-friendly baseimage-docker image. Now based on Ubuntu 20.04 LTS Focal.

If this image becomes out of date due to a new Amber or Crystal release, please open an issue.

Contents

Includes:

  • Crystal 0.35.1
  • Amber v0.35.0
  • guardian
  • Node 14

Working dir is /home/app/myapp (user is app). Default port is 3000.

Versioning

  • Docker tags track Amber minor versions.
  • Crystal version is selected for compatibility with Amber version.
  • latest may not necessarily have a corresponding version tag.

How to use

Example docker-compose.yml:

version: '3'

services:
  web:
    image: anamba/crystal-amber-dev:0.35
    ports:
      - '3000:3000'  # <-- change the first number to set your local port
    volumes:
      - ./:/home/app/myapp:delegated  # NOTE: :delegated is a Docker for Mac feature
      - /home/app/myapp/node_modules  # keep node_modules off your local filesystem
    environment:
      AMBER_ENV: development
      PORT: 3000

  db:
    image: mariadb:10.4
    volumes:
      - /var/lib/mysql
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: 1

From there, you can run docker-compose up to start the containers, then, in a separate terminal:

docker-compose exec -u app web amber watch   # run amber watch
docker-compose exec -u app web guardian      # run guardian
docker-compose exec -u app web crystal spec  # run crystal spec
docker-compose exec -u app web bash          # get a user shell
docker-compose exec web bash                 # get a root shell

You get the idea. You'll want to create aliases or simple shell scripts to save yourself some typing.

Development

(notes for myself)

docker build --no-cache -t anamba/crystal-amber-dev:latest .
docker tag anamba/crystal-amber-dev:latest anamba/crystal-amber-dev:0.35.1
docker tag anamba/crystal-amber-dev:latest anamba/crystal-amber-dev:0.35
docker push anamba/crystal-amber-dev