Clean up Dockerfile
This commit is contained in:
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
@@ -7,23 +7,8 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: install elan
|
||||
run: |
|
||||
set -o pipefail
|
||||
curl -sSfL https://github.com/leanprover/elan/releases/download/v1.4.2/elan-x86_64-unknown-linux-gnu.tar.gz | tar xz
|
||||
./elan-init -y --default-toolchain none
|
||||
echo "$HOME/.elan/bin" >> $GITHUB_PATH
|
||||
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: lake update
|
||||
run: lake update
|
||||
|
||||
- name: get cache
|
||||
run: lake exe cache get
|
||||
|
||||
- name: build game
|
||||
run: env LEAN_ABORT_ON_PANIC=1 lake build
|
||||
|
||||
- name: build docker image
|
||||
run: docker build . --file Dockerfile --tag nng:latest
|
||||
|
||||
29
Dockerfile
29
Dockerfile
@@ -1,5 +1,3 @@
|
||||
ARG GAME_DIR
|
||||
|
||||
FROM ubuntu:18.04
|
||||
|
||||
WORKDIR /
|
||||
@@ -14,22 +12,19 @@ RUN ./elan-init -y --default-toolchain leanprover/lean4:nightly-2022-09-23
|
||||
# TODO: Read out lean version from lean-toolchain file
|
||||
ENV PATH="${PATH}:/root/.elan/bin"
|
||||
|
||||
# Copy lean files
|
||||
COPY lake-packages/GameServer/server/GameServer ./GameServer
|
||||
COPY lake-packages/GameServer/server/Main.lean ./Main.lean
|
||||
COPY lake-packages/GameServer/server/lakefile.lean ./lakefile.lean
|
||||
COPY lake-packages/GameServer/server/lake-manifest.json ./lake-manifest.json
|
||||
COPY lake-packages/GameServer/server/lean-toolchain ./lean-toolchain
|
||||
# Copy the game to `game`
|
||||
COPY . ./game
|
||||
|
||||
# Copy the game to `nng`
|
||||
COPY NNG ./nng/NNG
|
||||
COPY NNG.lean ./nng/NNG.lean
|
||||
COPY lakefile.lean ./nng/lakefile.lean
|
||||
COPY lake-manifest.json ./nng/lake-manifest.json
|
||||
COPY lean-toolchain ./nng/lean-toolchain
|
||||
WORKDIR /game
|
||||
RUN lake update
|
||||
RUN lake exe cache get
|
||||
|
||||
WORKDIR /
|
||||
RUN rm -f ./build/bin/gameserver
|
||||
WORKDIR /game/lake-packages/GameServer/server/
|
||||
RUN lake clean
|
||||
RUN lake build
|
||||
|
||||
WORKDIR /build/bin/
|
||||
WORKDIR /game
|
||||
RUN lake clean
|
||||
RUN lake build
|
||||
|
||||
WORKDIR /game/lake-packages/GameServer/server/build/bin/
|
||||
|
||||
33
lake-manifest.json
Normal file
33
lake-manifest.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{"version": 4,
|
||||
"packagesDir": "lake-packages",
|
||||
"packages":
|
||||
[{"git":
|
||||
{"url": "https://github.com/leanprover-community/mathlib4.git",
|
||||
"subDir?": null,
|
||||
"rev": "fc4a489c2af75f687338fe85c8901335360f8541",
|
||||
"name": "mathlib",
|
||||
"inputRev?": "fc4a489c2af75f687338fe85c8901335360f8541"}},
|
||||
{"git":
|
||||
{"url": "https://github.com/gebner/quote4",
|
||||
"subDir?": null,
|
||||
"rev": "cc915afc9526e904a7b61f660d330170f9d60dd7",
|
||||
"name": "Qq",
|
||||
"inputRev?": "master"}},
|
||||
{"git":
|
||||
{"url": "https://github.com/JLimperg/aesop",
|
||||
"subDir?": null,
|
||||
"rev": "071464ac36e339afb7a87640aa1f8121f707a59a",
|
||||
"name": "aesop",
|
||||
"inputRev?": "master"}},
|
||||
{"git":
|
||||
{"url": "https://github.com/leanprover-community/lean4game.git",
|
||||
"subDir?": "server",
|
||||
"rev": "dd7f1a8e20f26ae391abba51f8dcddba4c2a30d9",
|
||||
"name": "GameServer",
|
||||
"inputRev?": "main"}},
|
||||
{"git":
|
||||
{"url": "https://github.com/leanprover/std4",
|
||||
"subDir?": null,
|
||||
"rev": "44a92d84c31a88b9af9329a441890ad449d8cd5f",
|
||||
"name": "std",
|
||||
"inputRev?": "main"}}]}
|
||||
@@ -1,8 +1,24 @@
|
||||
import Lake
|
||||
open Lake DSL
|
||||
|
||||
require GameServer from git
|
||||
"https://github.com/leanprover-community/lean4game.git"@"main"/"server"
|
||||
def LocalGameServer : Dependency := {
|
||||
name := `GameServer
|
||||
src := Source.path "../lean4game/server"
|
||||
}
|
||||
|
||||
def RemoteGameServer : Dependency := {
|
||||
name := `GameServer
|
||||
src := Source.git "https://github.com/leanprover-community/lean4game.git" "main" "server"
|
||||
}
|
||||
|
||||
/- Choose dependency depending on the environment variable NODE_ENV -/
|
||||
open Lean in
|
||||
#eval (do
|
||||
let gameServerName :=
|
||||
if (← IO.getEnv "NODE_ENV") == some "development" then ``LocalGameServer else ``RemoteGameServer
|
||||
modifyEnv (fun env => Lake.packageDepAttr.ext.addEntry env gameServerName)
|
||||
: Elab.Command.CommandElabM Unit)
|
||||
|
||||
|
||||
require mathlib from git
|
||||
"https://github.com/leanprover-community/mathlib4.git" @ "fc4a489c2af75f687338fe85c8901335360f8541"
|
||||
|
||||
Reference in New Issue
Block a user