美文网首页Docker容器
docker安装spider-flow-2022-11-05

docker安装spider-flow-2022-11-05

作者: 貓叔 | 来源:发表于2022-11-06 00:05 被阅读0次

想弄个爬虫看看,简单搜索了一下 spider-flow 评价不错,开干
虽然以前维护过Java的应用,但也是很多年前的事情了,而且自己经常都搞不同软件,还是用docker来得靠谱

第一次弄Java相关的docker,耗了一个下午才搞定
官网说的环境包括:Java8、maven3、MySQL5.7

先找人家打包好的

因为是在MacBook上面折腾,得搞个支持M1的
结果打包好的都是x86的
而且打包了的完全不知道人家配置的jdbc配置,数据host还可以从报错看到,用户名密码完全没办法。。(jar从镜像抽出来再解压?)
自己打一个试试吧

maven3

代码pull下来以后,先考虑编译

# -v /Users/xxxx/maven-repo:/root/.m2 将编译的时候下载依赖包存下来,这很重要 ToT,docker用完就清的特性,每次下载真的很痛苦
docker run -it --rm --name my-maven-project -v /Users/xxxx/maven-repo:/root/.m2 -v "$projectDir":/usr/src/mymaven -w /usr/src/mymaven maven:3.8.6-openjdk-8-slim mvn clean install

Java8

耗了点时间,不过对dockerhub有更熟悉了一些
用官网Dockerfile, 第一句 FROM java:8 就会报错
在hub上面翻了一段时间,找到了这个镜像 openjdk:8-jdk-alpine

报错如下

docker build .
[+] Building 2.9s (3/3) FINISHED
 => [internal] load build definition from Dockerfile                                                                         0.0s
 => => transferring dockerfile: 267B                                                                                         0.0s
 => [internal] load .dockerignore                                                                                            0.0s
 => => transferring context: 2B                                                                                              0.0s
 => ERROR [internal] load metadata for docker.io/library/java:8                                                              2.8s
------
 > [internal] load metadata for docker.io/library/java:8:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: docker.io/library/java:8: not found

将Dockerfile改成这样,就好了

FROM openjdk:8-jdk-alpine
RUN mkdir -p /spider-flow
WORKDIR /spider-flow
EXPOSE 8088
ADD ./spider-flow-web/target/spider-flow.jar ./
CMD sleep 30;java -Djava.security.egd=file:/dev/./urandom -jar spider-flow.jar

MySQL5.7

本以为是最简单却用了不少时间,用了mariadb,MySQL也没有5.7的官方镜像了
后面是用docker-compose 拉起来的,直接上配置

  mysql:
    image: mariadb:10.4.26
    volumes:
      - "/Users/xxx/localMysqlData:/var/lib/mysql"
    environment:
      MARIADB_ROOT_PASSWORD: 123456789
    expose:
      - "3306"

然后把数据导进去,命令也是在hub的介绍里面有写

# 这是错误姿势,后面拉起来以后页面中文乱码
docker exec -i d1d13ea9efaa  sh -c 'exec mariadb -uroot -p123456789' < spiderflow.sql
# 一通乱跳以后,发现是导进去的时候字符集错了
# 指定一下utf8
docker exec -i d1d13ea9efaa  sh -c 'exec mariadb -uroot -p123456789 --default-character-set=utf8' < spiderflow.sql

拉起来吧

docker-compose 之前也没搞过,现学了

$ cat 20221105.yaml
services:
  web:
    image: spider-flow:20221105-4
    ports:
      - "8088:8088"
    depends_on:
      - mysql

  mysql:
    image: mariadb:10.4.26
    volumes:
      - "/Users/xxx/work/localMysqlData:/var/lib/mysql"
    environment:
      MARIADB_ROOT_PASSWORD: 123456789
    expose:
      - "3306"

$ docker-compose -f 20221105.yaml up

浏览器 localhost:8088,可以了

相关文章

网友评论

    本文标题:docker安装spider-flow-2022-11-05

    本文链接:https://www.haomeiwen.com/subject/zkymtdtx.html