本篇介紹如何在 windows10 透過 wsl + docker + vscode 運行 GnuCOBOL,考量到不同環境問題,所以使用 docker 來處理,以下紀錄。
Step1: 安裝 wsl + docker
請參考(oracle的部分可以省略): [Linux] Windows安裝Wsl2 + Ubuntu22.04 + Docker +Oracle
Step2: 創建 Dockerfile
於 D:/docker_cobol 下創建 Dockerfile
FROM ubuntu:22.04
RUN apt-get update && \
apt-get install -y gnucobol && \
apt-get clean
WORKDIR /usr/src/app
CMD ["bash"]
Step3: 建構 Docker image
於 D:/docker_cobol 開啟 cmd,進入 wsl 後,輸入以下指令。
docker build -t gnucobol-env .
Step4: 運行 Docker container
docker run -it -d -v /mnt/d/docker_cobol/app:/usr/src/app gnucobol-env
Step5: 於 wsl 中開啟 vscode
code .
可以發現左下角有連到了。
Step6: 設定 devcontainer.json
於 D:/docker_cobol 建立 .devcontainer 資料下,並於內部建立 devcontainer.json (內容如下)
{
"name": "GnuCOBOL",
"context": "..",
"dockerFile": "../Dockerfile",
"mounts": [
"source=/mnt/d/docker_cobol/app,target=/usr/src/app,type=bind",
],
"workspaceFolder": "/usr/src/app",
"extensions": [
"bitlang.cobol",
"formulahendry.code-runner"
]
}
Step6: Connect to container
按下 Ctrl + P,並點擊 Dev Containers: Reopoen in Container。會讀取 devcontainer.json 建立連線。
Step7: Hello World
建立一個 01_hello.cob 檔案,輸入以下內容。
IDENTIFICATION DIVISION.
PROGRAM-ID. 'HELLOWORLD'.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Hello world!"
STOP RUN.
運行 cobol
# 將 01_hello.cob 編譯,並產生 01_hello 檔案
cobc -x '/usr/src/app/01_hello.cob'
# 執行 01_hello
./01_hello