Skip to content

Commit

Permalink
fix: make every apps to be runnable on arm64v8/ubuntu
Browse files Browse the repository at this point in the history
  • Loading branch information
mickamy committed Jan 4, 2024
1 parent 03deb64 commit 4f923e1
Show file tree
Hide file tree
Showing 12 changed files with 34 additions and 46 deletions.
2 changes: 2 additions & 0 deletions admin/config/my.app.cnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[mysqld]
bind-address = 0.0.0.0
14 changes: 9 additions & 5 deletions docker/app/base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,8 @@ ENV LC_ALL=C.UTF-8
ENV TZ Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# MySQL のインストール
RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-server mysql-server/root_password password ishocon'"]
RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-service mysql-server/mysql-apt-config string 4'"]

RUN apt-get update && \
apt-get install -y wget sudo less vim tzdata \
mysql-server \
nginx \
# 各言語のインストールに必要なもの下準備 \
curl git gcc make libssl-dev libreadline-dev
Expand All @@ -30,6 +25,15 @@ COPY admin/config/bashrc /home/ishocon/.bashrc
COPY admin/ssl/ /etc/nginx/ssl/
COPY admin/config/nginx.conf /etc/nginx/nginx.conf

# MySQL のインストールと dump, cnf の配置
RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-server mysql-server/root_password password ishocon'"]
RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password ishocon'"]
RUN ["/bin/bash", "-c", "debconf-set-selections <<< 'mysql-service mysql-server/mysql-apt-config string 4'"]
RUN apt-get install -y mysql-server
RUN mkdir -m 777 /home/ishocon/data
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY admin/config/my.app.cnf /etc/mysql/my.cnf

USER ishocon

EXPOSE 3306 443
5 changes: 1 addition & 4 deletions docker/app/crystal/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,9 @@ RUN sudo apt install -y libssl1.0-dev gnupg2
RUN curl -fsSL https://crystal-lang.org/install.sh | sudo bash

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

WORKDIR /home/ishocon
EXPOSE 443

COPY run.sh /home/ishocon/run.sh

Expand Down
11 changes: 5 additions & 6 deletions docker/app/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
#!/bin/bash -eux

sudo nginx -t
sudo service nginx start
sudo service mysql start || true # なぜか失敗する(調査中)
sudo chown -R mysql:mysql /var/lib/mysql /var/run/mysqld
sudo service mysql start # 正しく起動
cd /home/ishocon
sudo nginx -t && \
sudo service nginx start && \
sudo service mysql start && \
sudo mysql -u root -pishocon -e 'CREATE DATABASE IF NOT EXISTS ishocon2;' && \
sudo mysql -u root -pishocon -e "CREATE USER IF NOT EXISTS ishocon IDENTIFIED BY 'ishocon';" && \
sudo mysql -u root -pishocon -e 'GRANT ALL ON *.* TO ishocon;' && \
cd ~/data && tar -jxvf ishocon2.dump.tar.bz2 && sudo mysql -u root -pishocon ishocon2 < ~/data/ishocon2.dump
tar -jxvf ~/data/ishocon2.dump.tar.bz2 -C ~/data && sudo mysql -u root -pishocon ishocon2 < ~/data/ishocon2.dump

echo 'setup completed.'

Expand Down
5 changes: 1 addition & 4 deletions docker/app/go/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@ ENV GOPATH /home/ishocon/.local/go
ENV PATH $PATH:$GOROOT/bin

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

WORKDIR /home/ishocon
EXPOSE 443

COPY run.sh /home/ishocon/run.sh

Expand Down
5 changes: 1 addition & 4 deletions docker/app/nodejs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,13 @@ RUN sudo apt install -y nodejs-dev node-gyp libssl1.0-dev
RUN sudo apt install -y nodejs npm

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

# ライブラリのインストール
RUN cd /home/ishocon/webapp/nodejs && \
sudo npm install

WORKDIR /home/ishocon
EXPOSE 443

COPY run.sh /home/ishocon/run.sh

Expand Down
5 changes: 1 addition & 4 deletions docker/app/php/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ RUN sudo apt-get update
RUN sudo apt install -y php php-fpm php-mysql php-cli

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

# ライブラリのインストール
RUN cd /home/ishocon/webapp/php && \
Expand All @@ -19,7 +17,6 @@ RUN cd /home/ishocon/webapp/php && \
sudo php ./composer.phar install

WORKDIR /home/ishocon
EXPOSE 443

COPY run.sh /home/ishocon/run.sh

Expand Down
5 changes: 1 addition & 4 deletions docker/app/python/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,14 @@ RUN git clone https://github.com/pyenv/pyenv.git ~/.pyenv && \
cd && curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py && python get-pip.py && rm get-pip.py

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

# ライブラリのインストール
RUN sudo apt-get install -y libmysqlclient-dev
RUN LC_ALL=C.UTF-8 && LANG=C.UTF-8 && cd /home/ishocon/webapp/python && \
/home/ishocon/.pyenv/shims/pip install -r requirements.txt

WORKDIR /home/ishocon
EXPOSE 443

COPY run.sh /home/ishocon/run.sh

Expand Down
16 changes: 8 additions & 8 deletions docker/app/ruby/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ ENV APP_LANG 'Ruby'

# Ruby のインストール
RUN sudo apt-get update && \
sudo apt-get install -y ruby-dev libmysqlclient-dev libffi6 libffi-dev libyaml-dev && \
sudo apt-get install -y ruby-dev libmysqlclient-dev libffi6 libffi-dev libyaml-dev bzip2 && \
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
RUN PATH="$HOME/.rbenv/bin:$PATH" && \
eval "$(rbenv init -)" && \
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build && \
rbenv install 2.5.1 && rbenv rehash && rbenv global 2.5.1

# アプリケーション
RUN mkdir /home/ishocon/data /home/ishocon/webapp
COPY admin/ishocon2.dump.tar.bz2 /home/ishocon/data/ishocon2.dump.tar.bz2
COPY webapp/ /home/ishocon/webapp

# ライブラリのインストール
RUN cd /home/ishocon/webapp/ruby && sudo gem install bundler -v "1.16.1" && bundle install
COPY --chown=ishocon:ishocon webapp/ /home/ishocon/webapp

WORKDIR /home/ishocon
EXPOSE 443

# ライブラリのインストール
RUN . ~/.bashrc && \
cd /home/ishocon/webapp/ruby && \
gem install bundler -v "1.16.1" && \
bundle update

COPY run.sh /home/ishocon/run.sh

Expand Down
6 changes: 2 additions & 4 deletions docker/benchmarker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
#!/bin/bash -ux

service mysql start # なぜか失敗する(調査中)
chown -R mysql:mysql /var/lib/mysql /var/run/mysqld
service mysql start # 正しく起動
service mysql start && \
mysql -u root -pishocon -e 'CREATE DATABASE IF NOT EXISTS ishocon2;' && \
mysql -u root -pishocon -e "CREATE USER IF NOT EXISTS ishocon IDENTIFIED BY 'ishocon';" && \
mysql -u root -pishocon -e 'GRANT ALL ON *.* TO ishocon;' && \
cd /root/admin && tar -jxvf ishocon2.dump.tar.bz2 && mysql -u root -pishocon ishocon2 < /root/admin/ishocon2.dump
tar -jxvf ~/admin/ishocon2.dump.tar.bz2 -C ~/admin && mysql -u root -pishocon ishocon2 < ~/admin/ishocon2.dump

echo 'setup completed.'

Expand Down
2 changes: 1 addition & 1 deletion webapp/ruby/Gemfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
source 'https://rubygems.org'

gem 'sinatra'
gem 'mysql2'
gem 'mysql2', '~> 0.5.3'
gem 'mysql2-cs-bind'
gem 'erubis'
gem 'unicorn'
4 changes: 2 additions & 2 deletions webapp/ruby/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ GEM
specs:
erubis (2.7.0)
kgio (2.10.0)
mysql2 (0.4.4)
mysql2 (0.5.5)
mysql2-cs-bind (0.0.6)
mysql2
rack (1.6.12)
Expand All @@ -24,7 +24,7 @@ PLATFORMS

DEPENDENCIES
erubis
mysql2
mysql2 (~> 0.5.3)
mysql2-cs-bind
sinatra
unicorn
Expand Down

0 comments on commit 4f923e1

Please sign in to comment.