运行 没有 GHC 和 cabal 的 Keter
Run Keter without GHC and cabal
我有一台服务器,想在不安装 GHC 和 Cabal 的情况下部署我的 Yesod 应用程序。我不确定是否可行:一位老师告诉我,我必须先在我的机器上编译 Keter,然后,将 keter
可执行文件放在服务器上,但我不确定该怎么做。
要构建 Keter,首先您需要从基于以下 Dockerfile
:
的映像派生的 GitHub repository. Then you'll need to set up a Haskell build environment and use cabal build
or cabal install
to build the sources. Personally, I use a Docker 容器中克隆源代码
FROM haskell:7.10.2
RUN apt-get update && apt-get install -y \
git
RUN mkdir /src
RUN cd src && \
git clone https://github.com/snoyberg/keter && \
cd keter && \
git checkout e8b5a3fd5e14dfca466f8acff2a02f0415fceeb0
WORKDIR /src/keter
RUN cabal update
RUN cabal install keter
ENTRYPOINT /bin/bash
这是一个图像,其中包含在特定修订版中检出的 Keter 源代码,并使用构建它所需的最少 GHC 工具链。 cabal
命令行拉下项目的所有依赖项并编译整个项目。完成后,您可以从 ~/.cabal/bin/keter
.
获取 keter
可执行文件
即使您选择不使用 Docker,此文件也会让您大致了解如何设置环境。
现在你已经编译了 Keter,你可以 运行 它在另一个 Docker 容器中。这是相应图像的 Dockerfile
的粗略概念:
FROM debian
RUN apt-get update && apt-get install -y \
libgmp-dev \
nano \
postgresql
COPY keter /opt/keter/bin/
COPY keter-config.yaml /opt/keter/etc/
EXPOSE 80
CMD ["/opt/keter/bin/keter", "/opt/keter/etc/keter-config.yaml"]
这将采用基本的 Debian 映像并在其上安装最小的软件包集。然后它将 keter
可执行文件和配置文件复制到映像中。如果您然后 运行 来自结果图像的容器,它将启动 keter
可执行文件。
公平警告:整个过程相当复杂。我仍在努力自己调整确切的细节。祝你好运!
我有一台服务器,想在不安装 GHC 和 Cabal 的情况下部署我的 Yesod 应用程序。我不确定是否可行:一位老师告诉我,我必须先在我的机器上编译 Keter,然后,将 keter
可执行文件放在服务器上,但我不确定该怎么做。
要构建 Keter,首先您需要从基于以下 Dockerfile
:
cabal build
or cabal install
to build the sources. Personally, I use a Docker 容器中克隆源代码
FROM haskell:7.10.2
RUN apt-get update && apt-get install -y \
git
RUN mkdir /src
RUN cd src && \
git clone https://github.com/snoyberg/keter && \
cd keter && \
git checkout e8b5a3fd5e14dfca466f8acff2a02f0415fceeb0
WORKDIR /src/keter
RUN cabal update
RUN cabal install keter
ENTRYPOINT /bin/bash
这是一个图像,其中包含在特定修订版中检出的 Keter 源代码,并使用构建它所需的最少 GHC 工具链。 cabal
命令行拉下项目的所有依赖项并编译整个项目。完成后,您可以从 ~/.cabal/bin/keter
.
keter
可执行文件
即使您选择不使用 Docker,此文件也会让您大致了解如何设置环境。
现在你已经编译了 Keter,你可以 运行 它在另一个 Docker 容器中。这是相应图像的 Dockerfile
的粗略概念:
FROM debian
RUN apt-get update && apt-get install -y \
libgmp-dev \
nano \
postgresql
COPY keter /opt/keter/bin/
COPY keter-config.yaml /opt/keter/etc/
EXPOSE 80
CMD ["/opt/keter/bin/keter", "/opt/keter/etc/keter-config.yaml"]
这将采用基本的 Debian 映像并在其上安装最小的软件包集。然后它将 keter
可执行文件和配置文件复制到映像中。如果您然后 运行 来自结果图像的容器,它将启动 keter
可执行文件。
公平警告:整个过程相当复杂。我仍在努力自己调整确切的细节。祝你好运!