前言
偶然发现了 TechEmpower 这个后端框架评分网站,发现了一位重量级选手,2020年综合评分的冠军 Drogon,而这两年 Just.js 和 Rust 的两个框架霸榜,某 ++ 语言只能靠边观摩。今年更是因为测试不规范,被抬出了party。今天发现之前装框架的时候忘记装数据库接口了,这次干脆给自己写个 Dockerfile 打造一个专用的开发环境,也方便之后参考。
镜像源
我把我的镜像上传到了 Docker Hub,有缘人可以拉下来玩。当然我一般还会自己配置 ssh 和 VSCode 开发,这里为了整洁就不将配置写进去了。
1
   | docker pull azusaing/drogon:basic 
   | 
 
菜谱
花了我 3 分钟 build 的菜谱
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
   | 
 
 
 
 
  FROM debian:latest WORKDIR /root RUN apt update                                                                          && \
      apt install -y                                                                         \         git                                                                                    \     gcc                                                                                    \     g++                                                                                    \     cmake                                                                                  \     valgrind                                                                               \     ssh                                                                                    \     vim                                                                                    \     wget                                                                                && \   
      apt install -y                                                                         \     libjsoncpp-dev                                                                         \     uuid-dev                                                                               \        zlib1g-dev                                                                             \     openssl                                                                                \     libssl-dev                                                                             \     postgresql-server-dev-all                                                              \     default-libmysqlclient-dev                                                             \     libsqlite3-dev                                                                         \     libhiredis-dev                                                                      && \
      git clone https://github.com/drogonframework/drogon                                 && \     cd drogon                                                                           && \     git submodule update --init                                                         && \     mkdir build                                                                         && \     cd build                                                                            && \     cmake ..                                                                            && \     make -j $(nproc)                                                                    && \     make install                                                                        && \     cd ../..                                                                            && \      rm -rf drogon/                                                                      && \
      wget https://github.com/curl/curl/releases/download/curl-8_4_0/curl-8.4.0.tar.gz    && \     tar -xzvf curl-8.4.0.tar.gz                                                         && \                                      cd curl-8.4.0                                                                       && \     ./configure --with-openssl --prefix=/usr/                                           && \          make -j $(nproc)                                                                    && \     make install                                                                        && \     cd ..                                                                               && \      rm -rf curl-8.4.0/ curl-8.4.0.tar.gz                                                && \     apt remove -y wget                                                                  && \     apt autoclean                                                                       
 
 
  |