Skip to content

Instantly share code, notes, and snippets.

@unscriptable
Last active February 12, 2019 15:19
Show Gist options
  • Save unscriptable/6c8f956ce9248deac88598dc8e20ccb8 to your computer and use it in GitHub Desktop.
Save unscriptable/6c8f956ce9248deac88598dc8e20ccb8 to your computer and use it in GitHub Desktop.
Makefile to compile Elm in a container
# NOTE will not work with make -v 3.81 or lower
SHELL = /bin/bash
.RECIPEPREFIX = >
# run docker as current user so we don't get elm-stuff permissions problems
UID ?= $(shell id -u):$(shell id -g)
GIT_REPO_ROOT ?= $(PWD)
PROJECT_ROOT := $(GIT_REPO_ROOT)
# My app
APP_NAME := myapp
APP_ROOT := $(PROJECT_ROOT)/$(APP_NAME)
APP_MAIN := src/Main.elm
APP_OUTPUT := $(APP_NAME)/elm-output
# Build the app in the codesimple docker container
.PHONY: myapp
myapp:
> docker run --rm -it \
> -u $(UID) \
> -v $(APP_ROOT):/$(APP_NAME) -w /$(APP_NAME) \
> -v $(PROJECT_ROOT)/elm-stuff:/tmp -e "HOME=/tmp" \
> codesimple/elm:0.19 \
> make $(APP_MAIN) --output=/$(APP_OUTPUT)/myapp.html
# Clean
# Clean built files
.PHONY: clean
clean:
> rm -rf $(APP_OUTPUT)
# Clean all cached dependencies and built files
.PHONY: clean-all
clean-all:
> rm -rf $(PROJECT_ROOT)/$(APP_OUTPUT)
> rm -rf $(PROJECT_ROOT)/elm-stuff
> rm -rf $(APP_ROOT)/elm-stuff
@unscriptable
Copy link
Author

Note: I've noticed that I need to wait 1-2 seconds before my changes on my local file system (macOS 10.14.3) are available to the docker container (Engine: 18.09.1, Compose: 1.23.2, Machine: 0.16.1).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy