├── README.md ├── .github └── workflows │ └── release.yml └── Dockerfile /README.md: -------------------------------------------------------------------------------- 1 | # Base 2 | 3 | Polydice's base docker image for Rails applications. 4 | 5 | ## Variants 6 | 7 | - `x.y.z` - Standard image for running on production 8 | - `x.y.z-testing` - Image for testing which includes additional packages. 9 | 10 | ## Versions 11 | 12 | | Version | Ruby | Node.js | Yarn | Bundler | pnpm | 13 | |---------|-------|---------|---------|---------|-------| 14 | | 0.31.2 | 2.7.8 | 18.18.0 | 1.22.22 | 2.4.20 | 9.9.0 | 15 | | 0.31.1 | 2.7.8 | 18.18.0 | 1.22.19 | 2.4.20 | 8.8.0 | 16 | | 0.31.0 | 2.7.7 | 18.18.0 | 1.22.19 | 2.4.5 | 8.8.0 | 17 | | 0.30.3 | 2.7.7 | 14.21.2 | 1.22.19 | 2.4.5 | | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Build and Publish 2 | 3 | on: 4 | create: 5 | tags: 6 | - '*' 7 | 8 | jobs: 9 | build-and-push-docker-image: 10 | name: Build Docker image and push to repository 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - name: Checkout code 15 | uses: actions/checkout@v2 16 | 17 | - name: Docker meta 18 | id: meta 19 | uses: docker/metadata-action@v4 20 | with: 21 | images: polydice/base 22 | tags: type=ref,event=tag 23 | 24 | - name: Login to DockerHub 25 | uses: docker/login-action@v2 26 | with: 27 | username: ${{ secrets.DOCKERHUB_USERNAME }} 28 | password: ${{ secrets.DOCKERHUB_TOKEN }} 29 | 30 | - name: Build image and push to Docker Hub 31 | uses: docker/build-push-action@v3 32 | with: 33 | push: true 34 | context: . 35 | tags: ${{ steps.meta.outputs.tags }} -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG RUBY_VERSION=2.7.8 2 | ARG VARIANT=jemalloc-slim 3 | FROM quay.io/evl.ms/fullstaq-ruby:${RUBY_VERSION}-${VARIANT} as base 4 | 5 | ARG BUNDLER_VERSION=2.4.20 6 | RUN gem install -N bundler -v ${BUNDLER_VERSION} 7 | 8 | ARG NODE_VERSION=18.18.0 9 | ARG YARN_VERSION=1.22.22 10 | ARG PNPM_VERSION=9.9.0 11 | RUN curl https://get.volta.sh | bash 12 | ENV VOLTA_HOME /root/.volta 13 | ENV VOLTA_FEATURE_PNPM=1 14 | ENV PATH $VOLTA_HOME/bin:/usr/local/bin:$PATH 15 | RUN volta install node@${NODE_VERSION} && volta install yarn@${YARN_VERSION} && volta install pnpm@${PNPM_VERSION} 16 | 17 | RUN apt-get update \ 18 | && apt-get install -y --no-install-recommends \ 19 | dumb-init \ 20 | default-mysql-client \ 21 | default-libmysqlclient-dev \ 22 | postgresql-client \ 23 | graphicsmagick \ 24 | file \ 25 | tar \ 26 | curl \ 27 | ca-certificates \ 28 | libmcrypt4 \ 29 | shared-mime-info \ 30 | && rm -rf /var/lib/apt/lists/* 31 | 32 | RUN set -ex \ 33 | \ 34 | && buildDeps=' \ 35 | g++ \ 36 | make \ 37 | cmake \ 38 | python \ 39 | ' \ 40 | && apt-get update \ 41 | && apt-get install -y --no-install-recommends $buildDeps \ 42 | && rm -rf /var/lib/apt/lists/* \ 43 | \ 44 | && curl -L https://github.com/BYVoid/OpenCC/archive/refs/tags/ver.1.1.9.tar.gz | tar -xz \ 45 | && cd OpenCC-ver.1.1.9 \ 46 | && REL_BUILD_DOCUMENTATION=OFF make install \ 47 | \ 48 | && apt-get purge -y --auto-remove $buildDeps \ 49 | && cd ../ \ 50 | && rm -rf OpenCC-ver.1.1.9 51 | --------------------------------------------------------------------------------