相关疑难解决方法(0)

如何在docker容器内使用php artisan serve?

我使用 dockerfile 创建了一个 php-composer 图像:

FROM php:7

RUN apt-get update 
RUN apt-get install curl
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN apt-get install -y git
Run Code Online (Sandbox Code Playgroud)

我运行以下命令来创建一个容器并启动一个 Laravel 应用程序。

docker run -p 127.0.0.1:3000:8000 --name MyTest -dt php-composer to create a container
docker cp laravelApp/ d4bbb5d36312:/usr/
docker exec -it MyTest bash
cd usr/laravelApp
php artisan serve
Run Code Online (Sandbox Code Playgroud)

之后,容器的终端将显示成功信息:

Laravel development server started: <http://127.0.0.1:8000>
Run Code Online (Sandbox Code Playgroud)

但是当我在本地浏览器访问 127.0.0.1:3000 时,我什么也得不到。

那么是否有可能简单地运行 php artisan serve 来在 docker 容器内启动一个 Laravel 应用程序?

或者我必须使用 nginx 或 …

laravel docker

4
推荐指数
2
解决办法
8703
查看次数

您如何对WebSocket服务器进行docker化?

我在将WebSocket服务器放入Docker容器时遇到麻烦。

这是服务器代码,它使用“ connected”写入新连接。

// server.go
func RootHandler(w http.ResponseWriter, r *http.Request) {
    upgrader := websocket.Upgrader{ // (Uses gorilla/websocket)
        ReadBufferSize:  4096,
        WriteBufferSize: 4096,
    }

    conn, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        panic(err)
    }

    if err = conn.WriteMessage(websocket.TextMessage, []byte("connected")); err != nil {
        panic(err)
    }
}

func main() {
    fmt.Println("server is running")

    // For graceful shutdown
    stop := make(chan os.Signal, 1)
    signal.Notify(stop, os.Interrupt)

    server := http.Server{Addr: "localhost:8000"}
    defer server.Close()

    http.HandleFunc("/", RootHandler)

    go func() {
        err := server.ListenAndServe()
        if err …
Run Code Online (Sandbox Code Playgroud)

go websocket docker dockerfile

0
推荐指数
1
解决办法
1864
查看次数

标签 统计

docker ×2

dockerfile ×1

go ×1

laravel ×1

websocket ×1