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:
2026-03-29 10:35:51 +00:00
5 changed files with 81 additions and 5 deletions
+6
View File
@@ -16,3 +16,9 @@ npm-debug.log*
# Mac and Windows breadcrumbs
.DS_Store
Thumbs.db
# Compiled Tampio output — generated from .itp source files via `make`
examples/**/*.html
# Hiding temp files
diff.txt
+38
View File
@@ -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"]
+22
View File
@@ -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)
+7 -5
View File
@@ -1,6 +1,6 @@
# 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
@@ -23,15 +23,17 @@ tampiorama/
├── basics/ ← factorial, fibonacci, hello world
├── data-structures/ ← lists, maps
├── strings/
├── async/ ← Promise/async usage
├── async/ ← async/Promise in the compiled JS output
└── program/ ← small "real" program
```
## Docker
- Base image: Debian or Ubuntu (libvoikko available via apt)
- Installs: `libvoikko-dev`, Node.js, `tampio` (npm)
- Goal: `docker run` gives a working Tampio environment with no manual setup
- Base image: Ubuntu 24.04
- Installs: `libvoikko-dev`, `voikko-fi`, Python 3, `python3-libvoikko`, clones tampio from GitHub
- 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
+8
View File
@@ -0,0 +1,8 @@
services:
tampio:
build: .
volumes:
- .:/tampiorama
working_dir: /tampiorama
stdin_open: true
tty: true