├── Dockerfile └── README.md /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM erlang:21-alpine 2 | 3 | # elixir expects utf8. 4 | ENV ELIXIR_VERSION="v1.8.1" \ 5 | LANG=C.UTF-8 6 | 7 | # Install dependencies 8 | RUN apk -U upgrade && \ 9 | apk --update --no-cache add ncurses-libs git make g++ wget python ca-certificates openssl curl && \ 10 | update-ca-certificates --fresh && \ 11 | rm -rf /var/cache/apk/* 12 | 13 | RUN set -xe \ 14 | && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \ 15 | && ELIXIR_DOWNLOAD_SHA256="de8c636ea999392496ccd9a204ccccbc8cb7f417d948fd12692cda2bd02d9822" \ 16 | && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ 17 | && echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ 18 | && mkdir -p /usr/local/src/elixir \ 19 | && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \ 20 | && rm elixir-src.tar.gz \ 21 | && cd /usr/local/src/elixir \ 22 | && make install clean 23 | 24 | # Add local node module binaries to PATH 25 | ENV PATH $PATH:node_modules/.bin:/usr/local/bin 26 | 27 | # Install Hex+Rebar 28 | RUN mix local.hex --force && \ 29 | mix local.rebar --force && \ 30 | mix hex.info 31 | 32 | EXPOSE 4000 33 | 34 | CMD ["sh", "-c", "mix deps.get && mix phoenix.server"] 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # docker-phoenix 2 | 3 | This repository contains a script for create [phoenix](http://www.phoenixframework.org/) server image. 4 | DockerHub repository is [here](https://hub.docker.com/r/shufo/phoenix/) 5 | 6 | You can use these tags as a version of elixir. 7 | 8 | - `1.8.1`, `latest` 9 | - `1.8.1-development` 10 | - `1.8.0` 11 | - `1.8.0-development` 12 | - `1.7.4` 13 | - `1.7.4-development` 14 | - `1.7.3` 15 | - `1.7.3-development` 16 | - `1.7.2` 17 | - `1.7.2-development` 18 | - `1.7.1` 19 | - `1.7.1-development` 20 | - `1.7.0` 21 | - `1.7.0-development` 22 | - `1.6.6` 23 | - `1.6.6-development` 24 | - `1.6.5` 25 | - `1.6.5-development` 26 | - `1.6.4` 27 | - `1.6.4-development` 28 | - `1.6.3` 29 | - `1.6.3-development` 30 | - `1.6.2` 31 | - `1.6.2-development` 32 | - `1.6.1` 33 | - `1.6.1-development` 34 | - `1.6.0` 35 | - `1.6.0-development` 36 | - `1.5.2` 37 | - `1.5.2-development` 38 | - `1.5.1` 39 | - `1.5.1-development` 40 | - `1.5.0` 41 | - `1.5.0-development` 42 | - `1.4.5` 43 | - `1.4.5-development` 44 | - `1.4.4` 45 | - `1.4.4-development` 46 | - `1.4.3` 47 | - `1.4.3-development` 48 | - `1.4.2` 49 | - `1.4.2-development` 50 | - `1.4.1` 51 | - `1.4.1-development` 52 | - `1.4.0` 53 | - `1.4.0-development` 54 | - `1.4.0-rc.1` 55 | - `1.4.0-rc.1-development` 56 | - `1.4.0-rc.0` 57 | - `1.3.4` 58 | - `1.3.4-development` 59 | - `1.3.3` 60 | - `1.3.2` 61 | - `1.3.1` 62 | - `1.3.0` 63 | - `1.2.6` 64 | - `1.2.5` 65 | - `1.2.3` 66 | 67 | `development` tags are including node.js and utilities to automatically compile assets on development environment. 68 | 69 | ## Usage 70 | 71 | Run below command in your phoenix project directory. 72 | 73 | ``` 74 | docker run -d -p 4000:4000 -v $(pwd):/app -w /app shufo/phoenix 75 | ``` 76 | 77 | ### docker-compose 78 | 79 | 80 | ``` 81 | app: 82 | image: shufo/phoenix:1.8.1-development 83 | container_name: myproject_app 84 | hostname: app 85 | expose: 86 | - 4000 87 | ports: 88 | - "4000:4000" 89 | - "4001:4001" 90 | working_dir: /code 91 | volumes: 92 | - ".:/code" 93 | environment: 94 | - "PORT=4000" 95 | - "ERL_AFLAGS=-kernel shell_history enabled" 96 | links: 97 | - mysql 98 | ``` 99 | --------------------------------------------------------------------------------