728x90
반응형
간단한 홈페이지를 구축해야할 필요가 있었는데
Gnuboard를 Docker 이미지로 만들어서 헤로쿠에 배포하고 싶었다.
그래서 기존에 만들어진 것이 있는지 찾아보니 꽤 예전 버전이라 수정이 필요했다.
Dockerfile
은 다음과 같이 만들었다.
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
# Run upgrades
RUN echo "deb http://it.archive.ubuntu.com/ubuntu/ focal main universe" > /etc/apt/sources.list
RUN apt-get update
# Install basic packages
RUN apt-get -qq -y install git curl build-essential
# Install Apache2
RUN apt-get -qq -y install apache2
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
RUN a2enmod rewrite
RUN sed -i -e "s/html/gnuboard5/" /etc/apache2/sites-available/000-default.conf
# Install php
RUN apt-get -qq -y install php7.4
RUN apt-get -qq -y install libapache2-mod-php7.4 php7.4-mysql php7.4-gd
# Install Mysql
RUN apt-get -qq -y install mysql-server mysql-client libmysqlclient-dev
RUN sed -i -e "s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
# Install Gnuboard5
COPY gnuboard5 /var/www/gnuboard5
EXPOSE 80
ADD boot.sh /boot.sh
RUN chmod +x /boot.sh
CMD ["/bin/bash", "/boot.sh"]
이미지를 띄울 때 사용할 쉘 스크립트는 다음과 같이 작성했다.
#/bin/bash
# start mysql
nohup mysqld_safe --skip-grant-tables > /dev/null 2>&1 &
sleep 10
echo "CREATE USER 'gnuboard'@'localhost' IDENTIFIED BY 'gnub0ard';" | mysql
echo "CREATE DATABASE gnuboard;" | mysql
echo "GRANT ALL PRIVILEGES ON gnuboard.* TO 'gnuboard'@'localhost' WITH GRANT OPTION;" | mysql
# start apache2
sed -i "s/Listen 80/Listen ${PORT:-80}/g" /etc/apache2/ports.conf
sed -i "s/:80/:${PORT:-80}/g" /etc/apache2/sites-available/*
sed -i "s/:80/:${PORT:-80}/g" /etc/apache2/sites-enabled/*
rm -f /etc/apache2/mods-enabled/mpm_event.load
rm -f /etc/apache2/mods-enabled/mpm_event.conf
source /etc/apache2/envvars
/usr/sbin/apache2 -D FOREGROUND &
이렇게 작성해서 헤로쿠에 배포를 했으나 포트 번호가 계속 변경되는 문제로 되는 것만 확인하고 끝났다.
참고 문헌
반응형
'ETC.' 카테고리의 다른 글
[Chrome] 크롬 확장 프로그램 웹스토어에 등록하기 (0) | 2020.06.11 |
---|---|
조이콘 쏠림 현상 BW-100 으로 해결하기 (0) | 2020.05.20 |
[Linux] buff/cache 해제 (0) | 2020.05.07 |
[AdMob] 정책 위반 해결 (0) | 2020.01.25 |
구글 플레이스토어 정책 위반 메일 대처 방법 (0) | 2020.01.25 |