Open3
【未達】DockerのイメージをAlpineに変えてみる
現在はRubyのフルバージョンで作成しているDockerイメージを、Alpineに変えてみようとした試み(未達となった自分用メモ)
スタート時点のDockerfile
Dockerfile
FROM ruby:3.1.2
ARG ROOT="/sample_app"
ENV LANG=C.UTF-8 TZ=Asia/Tokyo
WORKDIR ${ROOT}
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN apt-get update; \
curl -sL https://deb.nodesource.com/setup_16.x | bash -; \
curl -Ss https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -; \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list; \
apt-get update -qq && \
apt-get install -y --no-install-recommends \
vim=2:8.2.2434-3+deb11u1 \
mariadb-client=1:10.5.15-0+deb11u1 \
tzdata \
nodejs \
yarn \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY Gemfile ${ROOT}
COPY Gemfile.lock ${ROOT}
RUN gem install bundler:2.3.22;\
bundle install --jobs 4
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
ベースのイメージをruby:3.1.2-alpine3.16に変えてみた。
- インストールのコマンドが
apk
に変わる。 - ビルド中のエラーで怒られたので、以下を追記した。
- curl
- build-base
- mysql-client
- mysql-dev
- 以下の内容では、
bundle install
時にmysql2の処理でエラーが発生してしまう。何らかのパッケージが不足しているようで、また自分の理解が不十分であるが、時間の都合で今回はここまでとする。 - 諦めてフルパッケージを使う( ;∀;)
Dockerfile
FROM ruby:3.1.2-alpine3.16
ARG ROOT="/sample_app"
ENV LANG=C.UTF-8 TZ=Asia/Tokyo
WORKDIR ${ROOT}
RUN apk update; \
apk add curl;\
curl -sL https://deb.nodesource.com/setup_16.x | bash -; \
curl -Ss https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -; \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list; \
apk update -qq && \
apk add --no-cache \
build-base \
mysql-client\
mysql-dev \
vim \
mariadb-client \
tzdata \
nodejs \
yarn \
&& rm -rf /var/lib/apk/lists/*
COPY Gemfile ${ROOT}
COPY Gemfile.lock ${ROOT}
RUN gem install bundler:2.3.22;\
bundle install --jobs 4
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]