일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- postgresql
- ubuntu
- centos
- nmap
- nohup
- perfect
- STF
- postgres
- PYTHON
- appium server
- Jupyter
- 28015
- appium
- Jupyter Notebook
- mysql
- STF_PortForwarding
- port forwarding
- ftp
- sshpass
- openpyxl
- SWIFT
- ssh
- 실행권한
- insert
- GoCD
- kitura
- Materials
- rethinkdb
- create table
- nGrinder
- Today
- Total
don't stop believing
docker 환경에서 swift 확인하기 본문
개발 및 서비스 환경을 Docker로 사용할 예정입니다.
Swift, Perfect로 API 서버를 만들 예정입니다.
우선, Ubuntu와 Docker 학습을 위해 아래와 같이 진행합니다.
- Ubuntu latest 버번의 docker image를 다운 받습니다.
- ubuntu container에 swift를 설치합니다.
- swift 빌드를 위한 Library 및 Packge들을 설치합니다.
- Swift Package Manager로 빌드해 봅니다.
시작에 압퍼 Docker 버전부터 확인해 봅니다.
$ docker --version Docker version 18.03.1-ce, build 9ee9f40
Ubuntu 최신 버전의 이미지를 다운받습니다.
$ docker pull ubuntu:latest
다운받은 이미지들을 확인해 봅니다.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest c5355f8853e4 2 months ago 107MB ubuntu latest 452a96d81c30 4 weeks ago 79.6MB tongchun/macaronapi 0.1.0 4307f5289a42 4 weeks ago 1.82GB
ubuntu 이미지를 실행시켜 컨테이너에 접속 합니다.
$ docker run -it --privileged --name swiftFun ubuntu:latest /bin/bash
바로 Ubuntu 컨테이너로 접속되었다면 Ubuntu 버전을 확인해 봅시다.
# cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04 LTS" NAME="Ubuntu" VERSION="18.04 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic
벌써 Ubuntu 18.04버전이 올라왔네요.
이제 swift를 다운로드 받아 봅시다. 최신 버전의 swift는 아래 url에서 확인할 수 있습니다.
현재 swift 4.1.1 버전이 Ubuntu 16.10 버전까지인데 일단 설치해 봅시다.
Ubuntu에서 파일 다운로드는 wget으로 합니다. 아마 wget이 설치되어 있지 않을 것이기 때문에 apt-get을 update하고 wget을 설치해 줍니다.
# apt-get update # apt-get install wget
update와 wget이 설치가 되었다면 swift 4.1.1을 다운받아 봅시다.
현재 위치가 root 경로이기 때문에 home에 가서 다운받습니다.
# cd home # wget https://swift.org/builds/swift-4.1.1-release/ubuntu1610/swift-4.1.1-RELEASE/swift-4.1.1-RELEASE-ubuntu16.10.tar.gz
ls -al 또는 ll 명령으로 현재 directory안의 파일을 확인해 봅니다.
다운받은 swift파일을 tar로 압축을 풉니다.
# tar -xvzf swift-4.1.1-RELEASE-ubuntu16.10.tar.gz
그리고 다시 directory를 확인하면 swift 압축파일과 동일한 이름으로 폴더가 생성되어 있고 그 안에 swift 파일들이 들어 있게 됩니다.
root directory에 swift 폴더를 만들고 압축 푼 폴더를 그 안으로 이동합니다.
# mkdir /swift # mv ./swift-4.1.1-RELEASE-ubuntu16.10 /swift
이동이 잘 되었는지 경로를 확인해 봅니다.
swift 폴더의 usr/bin 폴더까이 이동하고 directory를 확인해 봅니다.
# cd /swift/swift-4.1.1-RELEASE-ubuntu16.10/usr/bin/
이제 Ubuntu 이디에서든 swift 명령을 사용할 수 있도록 path에 등록합니다.
# export PATH=/swift/swift-4.1.1-RELEASE-ubuntu16.10/usr/bin:$PATH
path 등록이 되었는지 swift 버전을 확인해 봅니다.
# swift -version swift: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
엇... 에러가 났습니다.
libatomic.so.1 이라는 라이브러리를 못찾았다고 합니다.
현재 docker image로 배포된 Ubuntu는 깡통입니다. Ubuntu OS에 필요한 파일 외 아무것도 없습니다.
필요한 라이브러리를 설치해 줘야 합니다.
# apt-get -y install apt-file gcc-snapshot libedit2 libpython2.7 libpython-dev libxml2
몇 개의 라이브러리를 설치하고 나서 다시 swift 버전을 확인해 줍니다.
# swift -version Swift version 4.1.1 (swift-4.1.1-RELEASE) Target: x86_64-unknown-linux-gnu
이렇게 Ubuntu에 swift를 설치하고 필요한 라이브러리들을 모두 설치해 줘야 합니다.
하지만.... 그런 수고로움을 덜 수 있는 방법은....
docker에서 배포하는 swift 이미지를 다운받으면 됩니다.
docker containder에서 exit로 나갑니다. 그리고 swift docker image를 다운 받습니다.
$ docker pull swift:latest
docker image를 확인합니다.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest c5355f8853e4 2 months ago 107MB swift latest e8dc956c3315 4 weeks ago 1.35GB ubuntu latest 452a96d81c30 4 weeks ago 79.6MB tongchun/macaronapi 0.1.0 4307f5289a42 4 weeks ago 1.82GB
swift latest와 ubuntu latest의 사이즈부터 차이가 납니다.
docker의 swift image는 Ubuntu에 swift가 설치되어 있으며, 필요한 라이브라러가 설치된 image입니다.
swift 이미지를 접속해 봅시다.
$ docker run -it --privileged --name swiftEasy swift:latest /bin/bash
container에 접속이 되었다면 바로 swift 버전을 확인해 봅니다.
# swift -version Swift version 4.1 (swift-4.1-RELEASE) Target: x86_64-unknown-linux-gnu
which 명령으로 swift가 어디에 있는지 확인해 봅니다.
# which swift /usr/bin/swift
swift를 확인했으니 Hello World!는 써봐야죠.
root directory에 tongchun이란 폴더를 만들고 그 안에 hello.swift 파일을 만듭니다.
# mkdir /tongchun # cd tongchun # touch hello.swift
Ubuntu에서 파일을 편집하는 툴중 제가 가장 선호하는 툴은 vim입니다.
vim을 설치하고 hello.swift 파일을 열어 봅시다.
# apt-get updat # apt-get install vim # vim hello.swift
빈 화면이 보이면 i 키를 한번 눌러 입력모드로 변경합니다.
그리고 아래와 같이 작성합니다.
import Foundation func hello(name: String) { print("Hello, \(name)!") } hello(name: "tongchun")
작성이 완료되면 esc 키를 눌러 입력 모드에서 나갑니다.
그리고 :wq를 쓰고 파일을 저장하고 나갑니다.
이제 swift로 hello.swift 파일을 불러옵니다.
# swift hello.swift Hello, tongchun!
별도의 컴파일 없이 swift 파일을 해석해 출력합니다.
swift package manager까지 해봅시다.
swift package manager를 생성하고 바로 빌드하면 기본 Print 문구인 Hello World!가 출력됩니다.
먼저 적당한 프로젝트 폴더를 만들어 줍니다. 폴더명이 프로젝트명이 됩니다.
# mkdir /swiftServer # cd /swiftServer/
그리고 swift package manager를 초기화 해줍니다.
# swift package init --type executable Creating executable package: swiftServer Creating Package.swift Creating README.md Creating .gitignore Creating Sources/ Creating Sources/swiftServer/main.swift Creating Tests/
swift package를 작성하기 위한 기본 파일들이 생성됩니다.
아무 변경없이 바로 빌드해 줍니다.
# swift build Compile Swift Module 'swiftServer' (1 sources) Linking ./.build/x86_64-unknown-linux/debug/swiftServer
swiftServer 프로젝트 빌드가 성공했고 빌드 파일은 ./.build/x86_64-unknown-linux/debug/swiftServer 이 경로 입니다.
바로 빌드된 파일을 실행해 줍니다.
# ./.build/x86_64-unknown-linux/debug/swiftServer Hello, world!
여기까지 docker swift image를 이용한 swift 확인이었습니다.
'Tools > Docker' 카테고리의 다른 글
Docker를 설치합니다. (Windows, Mac, Linux) (1) | 2018.03.21 |
---|---|
Docker 기본 명령 (0) | 2018.03.15 |
Docker 알아보기 (0) | 2018.03.14 |