Merge pull request 'docker_setup' (#1) from docker_setup into main
Reviewed-on: http://localhost:44481/katariina-jarvenmaki/Tampiorama/pulls/1
This commit is contained in:
@@ -16,3 +16,9 @@ npm-debug.log*
|
|||||||
# Mac and Windows breadcrumbs
|
# Mac and Windows breadcrumbs
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
|
# Compiled Tampio output — generated from .itp source files via `make`
|
||||||
|
examples/**/*.html
|
||||||
|
|
||||||
|
# Hiding temp files
|
||||||
|
diff.txt
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
FROM ubuntu:24.04
|
||||||
|
|
||||||
|
# Avoid interactive prompts during apt installs
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# libvoikko: the Finnish morphology library Tampio depends on
|
||||||
|
# voikko-fi: provides only mor-standard; fi-x-morpho must be downloaded separately
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
libvoikko-dev \
|
||||||
|
voikko-fi \
|
||||||
|
python3 \
|
||||||
|
python3-libvoikko \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
unzip \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Install the fi-x-morpho dictionary that Tampio requires.
|
||||||
|
# The voikko-fi apt package only ships mor-standard; the morpho variant is a
|
||||||
|
# separate snapshot published by the voikko-fi project. The zip unpacks to
|
||||||
|
# 5/mor-morpho/ which is exactly where libvoikko looks for it under a search
|
||||||
|
# path. We install it system-wide under /usr/lib/voikko so it is available to
|
||||||
|
# all users (including non-interactive Docker runs).
|
||||||
|
RUN curl -fsSL https://www.puimula.org/htp/testing/voikko-snapshot-v5/dict-morpho.zip \
|
||||||
|
-o /tmp/dict-morpho.zip \
|
||||||
|
&& unzip /tmp/dict-morpho.zip -d /usr/lib/voikko \
|
||||||
|
&& rm /tmp/dict-morpho.zip
|
||||||
|
|
||||||
|
# Install Tampio directly from source (not on PyPI or npm)
|
||||||
|
RUN git clone https://github.com/fergusq/tampio.git /opt/tampio
|
||||||
|
|
||||||
|
# Handy wrapper so you can just call `tampio` from anywhere
|
||||||
|
RUN echo '#!/bin/sh\npython3 /opt/tampio/tampio.py "$@"' > /usr/local/bin/tampio \
|
||||||
|
&& chmod +x /usr/local/bin/tampio
|
||||||
|
|
||||||
|
WORKDIR /tampiorama
|
||||||
|
|
||||||
|
CMD ["/bin/bash"]
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
TAMPIO = docker compose run --rm tampio tampio -i -p
|
||||||
|
|
||||||
|
EXAMPLES = \
|
||||||
|
examples/basics/hello.html \
|
||||||
|
examples/basics/factorial.html \
|
||||||
|
examples/basics/fibonacci.html \
|
||||||
|
examples/basics/index.html \
|
||||||
|
examples/data-structures/lista.html \
|
||||||
|
examples/data-structures/vektori.html \
|
||||||
|
examples/strings/merkkijono.html \
|
||||||
|
examples/async/nappi.html \
|
||||||
|
examples/program/kasvutaulukko.html
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
all: $(EXAMPLES)
|
||||||
|
|
||||||
|
%.html: %.itp
|
||||||
|
$(TAMPIO) $< 2>/dev/null > $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(EXAMPLES)
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Tampiorama — Project Plan
|
# Tampiorama — Project Plan
|
||||||
|
|
||||||
This is a project plan for project that's meaning is to be open source showcase for Tampio, the Finnish natural-language OOP language that compiles to JavaScript.
|
This is a project plan for open source showcase for Tampio, the Finnish natural-language OOP language. Tampio is a Python-based compiler that takes Finnish-syntax source files and compiles them to JavaScript.
|
||||||
|
|
||||||
## Project Goals
|
## Project Goals
|
||||||
|
|
||||||
@@ -23,15 +23,17 @@ tampiorama/
|
|||||||
├── basics/ ← factorial, fibonacci, hello world
|
├── basics/ ← factorial, fibonacci, hello world
|
||||||
├── data-structures/ ← lists, maps
|
├── data-structures/ ← lists, maps
|
||||||
├── strings/
|
├── strings/
|
||||||
├── async/ ← Promise/async usage
|
├── async/ ← async/Promise in the compiled JS output
|
||||||
└── program/ ← small "real" program
|
└── program/ ← small "real" program
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
- Base image: Debian or Ubuntu (libvoikko available via apt)
|
- Base image: Ubuntu 24.04
|
||||||
- Installs: `libvoikko-dev`, Node.js, `tampio` (npm)
|
- Installs: `libvoikko-dev`, `voikko-fi`, Python 3, `python3-libvoikko`, clones tampio from GitHub
|
||||||
- Goal: `docker run` gives a working Tampio environment with no manual setup
|
- Note: Tampio is not on PyPI or npm — installed directly from source
|
||||||
|
- A `/usr/local/bin/tampio` wrapper makes it callable as a plain command
|
||||||
|
- Goal: `docker compose run --rm tampio` gives a working shell with no manual setup
|
||||||
|
|
||||||
## Open Questions
|
## Open Questions
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
services:
|
||||||
|
tampio:
|
||||||
|
build: .
|
||||||
|
volumes:
|
||||||
|
- .:/tampiorama
|
||||||
|
working_dir: /tampiorama
|
||||||
|
stdin_open: true
|
||||||
|
tty: true
|
||||||
Reference in New Issue
Block a user