Docker + Свифт + Проходящие Аргументы - PullRequest
0 голосов
/ 02 марта 2020

Может ли кто-нибудь помочь с передачей аргументов через Docker в проект Swift?

Это класс, который у меня есть для Swift:

import Foundation


print("Hello, world!")


// There is always one argument passed, which is the name of the program,
// that is the file name.
if CommandLine.argc < 2 {

    print("No arguments are passed.")
    let firstArgument = CommandLine.arguments[0]
    print(firstArgument)
} else {

    print("Arguments are passed.")
    let arguments = CommandLine.arguments
    for argument in arguments {
        print(argument)
    }
}

Это команды, которые Я запускаю:

docker build -t my-swift-image . 
docker run --rm my-swift-image  

Dockerfile

FROM swift
WORKDIR /app
COPY . ./
CMD swift package clean
CMD swift run

Структура папки

- app
   - Sources
      - SuiteTest
         - main.swift

app / Sources / SuiteTest

1 Ответ

1 голос
/ 02 марта 2020

Попробуйте

docker run --rm -it my-swift-image arg1 arg2

, чтобы добавить аргументы в командную строку. Это работает в такой конфигурации, как этот

Dockerfile:

FROM swift
COPY . /myapp
WORKDIR /myapp
ENTRYPOINT ["swift", "run", "myapp"]

образ, созданный и запущенный с использованием

docker build -t myapp .
docker run --rm -it myapp arg1 arg2
...