使用docker架设yiimp(2)
2019-12-18 本文已影响0人
Rakutens
准备工作:
1.我们先下载yiimp源码至Home目录,并解压
cd ~
wget https://github.com/tpruvot/yiimp/archive/next.zip
tar -zxvf next.zip
//请确保解压出来的目录为yiimp-next
2.将文件移动至项目运行目录
cp -r yiimp-next/web /yiimp/
cp -r yiimp-next/stratum /yiimp/
cp /yiimp/web/serverconfig.sample.php /yiimp/web/serverconfig.php
cp /yiimp/web/keys.sample.php /yiimp/web/keys.php
3.修改文件内参数
//修改memcached地址为"yiimp-memcached"(也就是docker实例名)
vi /yiimp/web/yaamp/config.php
//将useMemcached属性修改为true
vi /yiimp/web/framework/caching/CMemCache.php
//修改矿池及数据库参数
vi /yiimp/web/serverconfig.php
vi /yiimp/web/keys.php
4.然后准备两个Dockerfile文件以及一个sh文件并放在与yiimp-next目录同级(Home目录)
init-db.sh
#!/bin/bash
for f in /tmp/sql/*; do
case "$f" in
*.sql) echo "$0: running $f"; "${mysql[@]}" --force < "$f"; echo ;;
*.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${mysql[@]}"; echo ;;
*) echo "$0: ignoring $f" ;;
esac
echo
done
Dockerfile-Stratum
FROM alpine:3.10 as build
ENV BUILD_DEPS \
build-base \
curl-dev \
gmp-dev \
iniparser \
mariadb-dev
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache ${BUILD_DEPS}
RUN mkdir /yiimp
COPY yiimp-next/ /yiimp/
RUN make -C /yiimp/stratum/iniparser \
&& make -C /yiimp/stratum
FROM alpine:3.10 as stratum
EXPOSE 4233
ENV BUILD_DEPS \
curl \
gmp \
mariadb-dev \
libssh2 \
gcc
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
&& apk update \
&& apk add --no-cache ${BUILD_DEPS} \
&& mkdir /var/stratum /var/stratum/config
COPY --from=build /yiimp/stratum/run.sh /var/stratum/
COPY --from=build /yiimp/stratum/config/run.sh /var/stratum/config/
COPY --from=build /yiimp/stratum/stratum/ /var/stratum/
#COPY --from=build /yiimp/stratum/config.sample/ /var/stratum/config/
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
#&& apk add --no-cache bash
WORKDIR /var/stratum/config/
ENTRYPOINT ["sh", "run.sh"]
Dockerfile-MySQL
FROM mysql:5.7.26
RUN mkdir /tmp/sql
COPY init-db.sh /docker-entrypoint-initdb.d/
COPY yiimp-next/sql/ /tmp/sql/
WORKDIR /tmp/sql
RUN mv 2016-04-03-yaamp.sql.gz 0000-00-00-initial.sql.gz
EXPOSE 3306
生成Docker镜像
docker build -t yiimp -f Dockerfile-Stratum .
docker build -t yiimp-sql -f Dockerfile-MySQL .
如果编译时报找不到ulong,就找到那个文件,然后加一行
#define ulong uint64_t
运行数据库
数据库密码请保持与第三步时修改的php文件内一致
mysql数据保存在docker宿主机的/yiimp/mysql目录中
docker run -d \
--name yiimp-sql \
--net pool \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=yiimpfrontend \
-v /yiimp/mysql:/var/lib/mysql \
-p 3306:3306 \
yiimp-sql
需要稍等一会,第一次运行时会自动生成yiimp的数据结构
运行Stratum
从/yiimp/stratum/config.sample/找到你需要的币种配置文件,
移至/yiimp/config目录并修改参数,
(指定给docker引用,比如下例中我们使用neo)
docker run -d \
--name yiimp \
--net pool \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-v /yiimp/web/keys.php:/etc/yiimp/keys.php \
-v /yiimp/config/neo.conf:/var/stratum/config/neo.conf \
-p 4233:4233 \
yiimp neo
好了,主要步骤都已写完,我实在是懒得再写下去了,相信顺利走到这里,你已经基本能看到网页了,历尽千辛总能雨过天晴,恭喜恭喜!
什么?还没跑通?那.....就.....再继续找找原因吧..... = =!
参考资料:
yiimp
yiimp_install_scrypt
docker-yiimp-stratum
docker-yiimp-database
245-how-to-setup-yiimp-and-d
YIIMP搭建