2014年11月8日土曜日

DockerfileでApache2を起動するイメージを作成する

DockerでApache2を起動するイメージを作成するには、以下のようなDockerfileを使用します。
htmlなどのコンテンツはwwwサブディレクトリに配置します。

サンプルDockerfile
FROM ubuntu:latest

MAINTAINER kyle

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install apache2

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid

EXPOSE 80

ADD www /var/www/html

CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]

2014年11月3日月曜日

Raspberry piからWindows共有フォルダをマウントする

Raspberry piからWindows共有フォルダをマウントするには、以下の手順を実行します。

1.「コンピュータの管理」などでpiユーザを作成します。

2.Raspberry piのfstab編集
sudo vi /etc/fstabに以下の行を追加
//[windows機]/[共有フォルダ] /mnt/[ローカルのマウント位置] cifs username=pi,password=pi,uid=1000,gid=1000 0 0
※例
//win_machine/pub /mnt/pub cifs username=pi,password=pi,uid=1000,gid=1000 0 0

3.マウント
sudo mount /mnt/pub

バックアップなどをしたい場合は以下のような感じでrsyncコマンドを実行します。
rsync -r -v --progress -s /mnt/pub /opt/backup

2019/02/11追記:新しいWindows環境では、下記のようにsec=ntlm,vers=2.0を追加してください。
//win_machine/pub /mnt/pub cifs sec=ntlm,vers=2.0,username=pi,password=pi,uid=1000,gid=1000 0 0

○関連情報
・Raspberry Piに関する他の記事はこちらを参照してください。

・Raspberry Pi上のDockerに関する他の記事はこちらを参照してください。

2014年9月17日水曜日

RabbitMQをubuntu14.04にインストールする

1. apt-getにリポジトリ登録
echo "deb http://www.rabbitmq.com/debian/ testing main" | sudo tee -a /etc/apt/sources.list

wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc

2. RabbitMQのインストール
sudo apt-get update
sudo apt-get install rabbitmq-server

3. Management, mqttプラグインの導入
sudo rabbitmq-plugins enable rabbitmq_mqtt
sudo rabbitmq-plugins enable rabbitmq_management

4. guestユーザがリモートからログインできるように変更
cd /usr/share/doc/rabbitmq-server/
sudo gzip -d rabbitmq.config.example.gz
sudo cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
cd /etc/rabbitmq/
sudo vi rabbitmq.config
%% {loopback_users, []},の行を複製して、アンコメント。これによりguestユーザがremoteからログインできるようになる。
%% {loopback_users, []},
{loopback_users, []}

5. RabbitMQの再起動
sudo service rabbitmq-server restart

○環境
Ubuntu 14.04, RabbitMQ 3.3.5

○関連情報
・RabbitMQに関する他の記事はこちらを参照してください。

2014年8月22日金曜日

raspberry piでroot file systemを2T以上のUSB HDDに移動する

raspberry piでroot file systemを2T以上のUSB HDDに移動するには、以下の手順を実行します。
ログ出力などすべてHDDに出力することによりSDカードを延命化できます。

Root filesystemのUSB HDD移行手順

1.(すでにmountされている場合)unmount
sudo umount /dev/sda1
2. パーティション作成
※ディスク丸ごとを1つのパーティションにする場合。
sudoparted /dev/sda
mklabel gpt
mkpart primary ext4 0 -1s
quit
3. ext4 file system作成
sudo mkfs.ext4 /dev/sda1
4. mountする
cd /media
sudo mkdir usbhdd
sudo mount /dev/sda1 /media/usbhdd
df -h
5. sdカード内容をコピー
※必要に応じてrsyncインストール。
sudo apt-get install rsync 
sudo rsync -axv / /media/usbhdd
6.起動時設定
sudo vi /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda1 
rootfstype=ext4 elevator=deadline rootwait rootdelay=10
※rootを/dev/sda1に変更とrootdelay追加

/etc/fstabで「/」のデバイスを/dev/sda1に修正します。
sudo vi /media/usbhdd/etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/sda1  /               ext4    defaults,noatime  0       1
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off 
from here on, use  dphys-swapfile swap[on|off]  for that
※ /bootのデバイスはRaspbianのバージョンによって異なります(StretchなどではPARTUUID...となっています)。

7.再起動
sudo reboot

※2018/08/21追記 - Raspbian Stretch Lite (version : 2018 June)での上記手順を実行することができます。
※2020/07/13追記 - Raspbian Busterでも上記手順を実行することができます。