Home > Backend Development > Golang > Correct shell program for golang alpine docker container entry point?

Correct shell program for golang alpine docker container entry point?

王林
Release: 2024-02-09 14:09:09
forward
1004 people have browsed it

golang alpine docker 容器入口点的正确 shell 程序?

What is the correct shell entry point for Golang Alpine Docker container? This is a problem that many developers often encounter when building Docker containers using Golang and Alpine images. Before solving this problem, we first need to understand the relevant knowledge of Golang and Alpine. Golang is an efficient and concise programming language, while Alpine is a lightweight Linux distribution. When using Alpine as the base image, some common Shell commands may be missing due to its streamlined nature. So, how to correctly set the entry point of the Golang Alpine Docker container so that it can run the shell program? Let's take a look at the answer provided by php editor Apple.

Question content

I'm trying to start a golang alpine docker container (just the base image) and immediately connect to it to run commands, but I can't seem to specify the correct shell.

docker run -d golang:1.20-alpine --entrypoint=bin/sh
ec90a5d5eeba63e509acc09e234054d883aa122cd7617f89b61e7d71220847cd
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "--entrypoint=bin/sh": stat --entrypoint=bin/sh: no such file or directory: unknown.
Copy after login

I also tried: /bin/sh. What am I missing here?

Workaround

I will just write an answer in the comments instead of a command.

To start the golang alpine docker container (just the base image) and immediately connect to it to run commands, you can do the following:

docker run -it golang:1.20-alpine /bin/sh
Copy after login

If you want to name your container, you can do this:

docker pull golang:1.20-alpine
docker run -id --name=test5 golang:1.20-alpine
docker exec -it test5 /bin/sh
Copy after login

You can use docker stop test5 -t 2 to stop the container, and then use docker start test5 to start the container again.

You can delete it by executing docker rm test5.

You can change the command slightly to avoid the error:

docker run -d --entrypoint=/bin/sh golang:1.20-alpine
Copy after login

Please note that the --entrypoint command line switch is before golang:1.20-alpine.

The above is the detailed content of Correct shell program for golang alpine docker container entry point?. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template