Docker以太坊

使用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搭建

上一篇 下一篇

猜你喜欢

热点阅读