Skip to content

Commit 2b267fa

Browse files
committed
Update
- fix restart - fix DBD:mysql installation - fix volume mount - fix timezone
1 parent 2d4cf87 commit 2b267fa

File tree

3 files changed

+45
-28
lines changed

3 files changed

+45
-28
lines changed

Dockerfile

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ RUN bash -c "debconf-set-selections <<< 'mysql-server mysql-server/root_password
55
RUN bash -c "debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password super'"
66

77
RUN apt update
8-
RUN apt-get install -y --no-install-recommends cpanminus build-essential supervisor libdbd-mysql-perl sysstat mysql-server libmysqlclient-dev libperl-dev sudo \
8+
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y build-essential cpanminus mysql-server libmysqlclient-dev libdbd-mysql-perl libperl-dev sysstat netcat sudo tzdata \
99
&& apt-get clean \
1010
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
1111

@@ -16,7 +16,6 @@ RUN cpanm /root/IO-AIO-4.72.tgz
1616
RUN cpanm BRADFITZ/Sys-Syscall-0.23.tar.gz
1717

1818
RUN cpanm install --force MogileFS::Server \
19-
&& cpanm install DBD::mysql \
2019
&& cpanm install MogileFS::Utils \
2120
&& cpanm install MogileFS::Network
2221

@@ -27,27 +26,15 @@ RUN mkdir -p /etc/mysql/conf.d \
2726
echo 'datadir = /var/lib/mysql'; \
2827
echo '!includedir /etc/mysql/conf.d/'; \
2928
} > /etc/mysql/my.cnf
30-
31-
# Use touch here to workaround https://github.com/docker/for-linux/issues/72#issuecomment-319904698
32-
RUN mkdir /var/run/mysqld \
33-
&& chown mysql:mysql /var/run/mysqld \
34-
&& find /var/lib/mysql -type f -exec touch {} \; && mysqld & \
35-
timeout 60 bash -c "until mysql -h127.0.0.1 -uroot -psuper -e 'select null limit 1'; do sleep 1; done" \
36-
&& mysql -uroot -psuper -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'super';" \
37-
&& mogdbsetup --type=MySQL --yes --dbrootuser=root --dbrootpass=super --dbname=mogilefs --dbuser=mogile --dbpassword=mogilepw
38-
39-
RUN mkdir -p /etc/mogilefs \
40-
&& mkdir -p /var/mogdata/dev1 \
41-
&& mkdir -p /var/mogdata/dev2
29+
RUN rm -rf /var/lib/mysql/*
4230

4331
COPY mogilefsd.conf /etc/mogilefs/mogilefsd.conf
4432
COPY mogstored.conf /etc/mogilefs/mogstored.conf
4533
COPY mogilefs.conf /root/.mogilefs.conf
4634
COPY run.sh /run.sh
4735

48-
RUN adduser mogile --system --disabled-password \
49-
&& chown mogile -R /var/mogdata
36+
RUN adduser mogile --system --disabled-password
5037

51-
EXPOSE 7001 7500
38+
EXPOSE 7001 7500 7501
5239

5340
ENTRYPOINT ["/run.sh"]

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,6 @@ Checking devices...
5858
total: 956.450 120.078 836.372 12.55%
5959
```
6060

61-
# Known issues
62-
63-
* The container will fail to start with `docker restart`. Use `docker stop && docker start [container name]` instead.
64-
6561
# Contributing
6662
All contributions are welcome. Nothing else special.
6763

run.sh

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
#!/bin/bash
22
set -x
33

4+
MYSQL_FILE_COUNT=$(ls /var/lib/mysql|wc -l)
5+
if [ $MYSQL_FILE_COUNT != 0 ]; then
6+
mkdir -p /var/run/mysqld
7+
chown mysql:mysql /var/run/mysqld
8+
rm /var/run/mysqld/*
9+
find /var/lib/mysql -type f -exec touch {} \;
10+
mysqld &
11+
sleep 3; timeout 60 bash -c "until mysql -uroot -psuper -e 'select null limit 1'; do sleep 1; done"
12+
13+
set -m
14+
sudo -u mogile mogstored -c /etc/mogilefs/mogstored.conf &
15+
sudo -u mogile mogilefsd -c /etc/mogilefs/mogilefsd.conf &
16+
sleep 5
17+
18+
mogadm check
19+
fg
20+
fi
21+
22+
#############
23+
424
if [ "`echo ${NODE_HOST}`" == "" ]
525
then
626
NODE_HOST="127.0.0.1"
@@ -12,10 +32,20 @@ then
1232
NODE_PORT="7500"
1333
fi
1434

15-
find /var/lib/mysql -type f -exec touch {} \; && mysqld &
16-
timeout 60 bash -c "until mysql -h127.0.0.1 -uroot -psuper -e 'select null limit 1'; do sleep 1; done"
35+
mkdir -p /var/run/mysqld
36+
chown mysql:mysql /var/run/mysqld
37+
38+
# Use touch here to workaround https://github.com/docker/for-linux/issues/72#issuecomment-319904698
39+
find /var/lib/mysql -type f -exec touch {} \;
40+
mysqld --initialize-insecure
41+
mysqld &
1742

18-
sudo -u mogile mogilefsd --daemon -c /etc/mogilefs/mogilefsd.conf
43+
timeout 60 bash -c "until mysql -uroot -e 'select null limit 1'; do sleep 1; done"
44+
mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'super';"
45+
46+
mogdbsetup --type=MySQL --yes --dbrootuser=root --dbrootpass=super --dbname=mogilefs --dbuser=mogile --dbpassword=mogilepw
47+
48+
sudo -u mogile mogilefsd -c /etc/mogilefs/mogilefsd.conf &
1949
sleep 5
2050

2151
mogadm --trackers=127.0.0.1:7001 host add mogilestorage --ip=${NODE_HOST} --port=${NODE_PORT} --status=alive
@@ -42,11 +72,15 @@ fi
4272
mogadm domain list
4373
mogadm class list
4474

75+
76+
mkdir -p /etc/mogilefs \
77+
&& mkdir -p /var/mogdata/dev1 \
78+
&& mkdir -p /var/mogdata/dev2
79+
chown mogile -R /var/mogdata
80+
81+
set -m
4582
sudo -u mogile mogstored -c /etc/mogilefs/mogstored.conf &
4683
sleep 5
4784

4885
mogadm check
49-
pkill mogilefsd
50-
51-
sudo -u mogile mogilefsd -c /etc/mogilefs/mogilefsd.conf
52-
86+
fg

0 commit comments

Comments
 (0)